来路判断ipv4和ipv6,访问不同网站
由于封锁80,被迫采用了88端口作为https的访问地址,而后期开通了ipv6后,发现ipv6的80和443都处于开放状态。
在ipv4的状态下,访问方时通常是通过http://isher.qed.cn 跳转到https://i.qsis.cn:88上,从而达到访问目的。
移动端(即移动运营商给的是IPv6高于ipv4,优先采用ipv6访问),在访问的时候,是可以不需要加端口的。
function getip() /*获取客户端IP*/
{if (@$_SERVER["HTTP_X_FORWARDED_FOR"]){ //跳过代理获取客户端IP
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else if (@$_SERVER["HTTP_CLIENT_IP"]){//直接获取获取客户端IP
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
else if (@$_SERVER["REMOTE_ADDR"]){
$ip = $_SERVER["REMOTE_ADDR"];
}
else if (@getenv("HTTP_X_FORWARDED_FOR")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
else if (@getenv("HTTP_CLIENT_IP")){
$ip = getenv("HTTP_CLIENT_IP");
}
else if (@getenv("REMOTE_ADDR")){
$ip = getenv("REMOTE_ADDR");
}
else {
$ip = "Unknown";
}
return $ip;
}
$ip=getIP(); //echo "var ip_address ='$ip'; ";
if (filter_var(getIP(), \FILTER_VALIDATE_IP,\FILTER_FLAG_IPV4)) { //判断客户端地址是否为ipv4
function qc_site_link($print = true) { //如果是ipv4,则重新定义$site_link为后台所设置的ipv4的地址。
global $qc_config;
$site_link = $qc_config['site_link_ipv4'];
if ($print) {
echo $site_link;
return;
}
return $site_link;
}
}
if (filter_var(getIP(), \FILTER_VALIDATE_IP,\FILTER_FLAG_IPV6)) { //判断客户端地址是否为ipv4
function qc_site_link($print = true) { //如果是ipv4,则重新定义$site_link为后台所设置的ipv4的地址。
global $qc_config;
$site_link = $qc_config['site_link_ipv6'];
if ($print) {
echo $site_link;
return;
}
return $site_link;
}
}
<?php
$url = $_SERVER['HTTP_HOST'];
$httpurl = 'http://'.$url;
$httpsurl = 'https://'.$url;
$ipv4 = $qc_config['site_link_ipv4'];
if ($httpurl == $ipv4 || $httpsurl == $ipv4) {
if (filter_var(getIP(), \FILTER_VALIDATE_IP,\FILTER_FLAG_IPV6)) {
?>
<script language=javascript>
var current_url = window.location.href;
target_url = current_url.replace("<?php echo qc_site_link_ipv4(); ?>","<?php echo qc_site_link_ipv6(); ?>");
window.location = target_url;
</script>
<?php
}
}
?>
posted @
标签:QsisB开发日志
2021-04-26
返回首页
订阅 RSS / Feed 