当前位置:首页 » 文件传输 » 国内访问跳转
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

国内访问跳转

发布时间: 2022-05-01 23:10:53

㈠ 如何解决国内访问通用顶级根域名服务器出现异常

国内访问通用顶级根域名服务器出现异常,部分国内用户无法访问.com等域名网站。

二?一四年一月二十一日故障发生后,所有通用顶级域名在国内的访问出现问题。部分用户在访问网站时,会被跳转到65.49.2.178这一IP地址,导致真正的网站无法顺利访问。查询65.49.2.178的信息,发现该IP位于美国北卡罗莱纳州卡里镇Dynamic Internet Technology公司,大量中国知名IT公司的域名被解析到该地址。

给大家解释一下几个专业名词:

通用顶级根域名:供一些特定组织使用的顶级域,以其代表组织英文名称的头几个英文字母代表,通用顶级域名包括以.com(商业机构)、.net(从事互联网服务的机构)、.org(非赢利性组织)结尾的常用域名,还包括以.name(适用于个人注册)、.aero(适用于航空运输业)为结尾的新通用顶级根域名。

根域名服务器:简称“根服务器”,主要用来管理互联网的主目录,全世界只有13台根服务器,名字分别为“A”至“M”,1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9台设置在美国,另外的三台设置于英国、瑞典和日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。

DNS:DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。输入IP地址是直接从主机上调用内容,输入域名是通过域名解析服务器指向对应的主机的IP地址,再从主机调用网站的内容。如果DNS出现故障,就会立刻不能上网。

先通俗地还原一下我们访问网站的流程:

举例来说,访问XXX.com域名的网站,要经过三个步骤:

1、访问XXX.com域名网站的请求先要指向根服务器;

2、根服务器再将这个请求指向.com服务器;

3、.com服务器再把这个请求指向XXX.com。

国内曾经两次发生过根域名故障,一次是2013年07月06日,上海联通DNS设备发生故障,导致2G、3G的手机用户无法上网。另一次是2013年08月25日,.CN根域名服务器全线故障。时隔5个月,国内又再次发生DNS故障。

至于这次故障发生的原因,提出了以下几个可能:

1、如果这次的问题仅出现在中国,就说明全球根服务器并未出现问题,问题可能出在国内网络服务商身上。

2、很多网站被解析到65.49.2.178,由于国内没有根服务器,所以可能是国内与国外的服务器接口节点发生故障。有专家分析,故障原因可能是人为的黑客攻击。

遇到这种状况应该如何解决?

从普通用户的层面讲,网民也可以通过自行修改DNS服务器地址为114.114.114.114或8.8.8.8来解决。

具体操作步骤如下:

1.查看本地连接属性;



2.修改当前网络连接的TCP/IP V4属性;



3.将DNS服务器地址修改为114.114.114.114。

㈡ php代码 访问者IP是中国的就跳转到中文页面,不是中国的就跳转到英文页面

可能原来服务器有读取ip所在地的接口吧,可能你那个判断不好用了

放到index.php中
<?php
include_once 'class_iplocation.php';
$ip='222.132.78.170';
$iplo= new IpLocation();

$a_provinces=Array (
'0' => '河北',
'1' =>'海南',
'2' => '贵州',
'3' => '广西',
'4' => '广东',
'5' => '甘肃',
'6' => '福建',
'7' => '北京',
'8' => '安徽',
'9' => '河南',
'10' => '黑龙江',
'11' => '湖北',
'12' => '湖南',
'13' => '吉林',
'14' => '江苏',
'15' => '江西',
'16' => '辽宁',
'17' => '内蒙古',
'18' => '宁夏',
'19' => '青海',
'20' => '山东',
'21' => '山西',
'22' => '陕西',
'23' => '上海',
'24' => '四川',
'25' => '天津',
'26' => '西藏',
'27' => '新疆',
'28' => '云南',
'29' => '浙江',
'30' => '重庆',
'31' => '香港',
'32' => '澳门',
'33' => '台湾'
);
$china='';
$strs=$iplo->getlocation($ip);
//print_r($strs);
//echo $strs['country'];
foreach ($a_provinces as $ci)
{
$pos = strpos($strs['country'],$ci);
if ($pos !== false ) {
echo $ci;
$china=$ci;
break;
}
}
echo $china;
if($china!='')
$home='chinese/index.php';
else
$home='english/index.php';

echo "<script language='javascript'>window.location.href='".$home."';</script>";
?>

说明:1.qqwry.dat在qq文件夹下搜就有哦。这三个文件应该放于同一目录
2.类文件:class_iplocation.php
<?php
/**
* IP 地理位置查询类
*
* @author 马秉尧
* @version 1.5
* @right 2005 CoolCode.CN
*/
class IpLocation {
/**
* QQWry.Dat文件指针
*
* @var resource
*/
var $fp;

/**
* 第一条IP记录的偏移地址
*
* @var int
*/
var $firstip;

/**
* 最后一条IP记录的偏移地址
*
* @var int
*/
var $lastip;

/**
* IP记录的总条数(不包含版本信息记录)
*
* @var int
*/
var $totalip;

/**
* 返回读取的长整型数
*
* @access private
* @return int
*/
function getlong() {
//将读取的little-endian编码的4个字节转化为长整型数
$result = unpack('Vlong', fread($this->fp, 4));
return $result['long'];
}

/**
* 返回读取的3个字节的长整型数
*
* @access private
* @return int
*/
function getlong3() {
//将读取的little-endian编码的3个字节转化为长整型数
$result = unpack('Vlong', fread($this->fp, 3).chr(0));
return $result['long'];
}

/**
* 返回压缩后可进行比较的IP地址
*
* @access private
* @param string $ip
* @return string
*/
function packip($ip) {
// 将IP地址转化为长整型数,如果在PHP5中,IP地址错误,则返回False,
// 这时intval将Flase转化为整数-1,之后压缩成big-endian编码的字符串
return pack('N', intval(ip2long($ip)));
}

/**
* 返回读取的字符串
*
* @access private
* @param string $data
* @return string
*/
function getstring($data = "") {
$char = fread($this->fp, 1);
while (ord($char) > 0) { // 字符串按照C格式保存,以\0结束
$data .= $char; // 将读取的字符连接到给定字符串之后
$char = fread($this->fp, 1);
}
return $data;
}

/**
* 返回地区信息
*
* @access private
* @return string
*/
function getarea() {
$byte = fread($this->fp, 1); // 标志字节
switch (ord($byte)) {
case 0: // 没有区域信息
$area = "";
break;
case 1:
case 2: // 标志字节为1或2,表示区域信息被重定向
fseek($this->fp, $this->getlong3());
$area = $this->getstring();
break;
default: // 否则,表示区域信息没有被重定向
$area = $this->getstring($byte);
break;
}
return $area;
}

/**
* 根据所给 IP 地址或域名返回所在地区信息
*
* @access public
* @param string $ip
* @return array
*/
function getlocation($ip) {
if (!$this->fp) return null; // 如果数据文件没有被正确打开,则直接返回空
$location['ip'] = gethostbyname($ip); // 将输入的域名转化为IP地址
$ip = $this->packip($location['ip']); // 将输入的IP地址转化为可比较的IP地址
// 不合法的IP地址会被转化为255.255.255.255
// 对分搜索
$l = 0; // 搜索的下边界
$u = $this->totalip; // 搜索的上边界
$findip = $this->lastip; // 如果没有找到就返回最后一条IP记录(QQWry.Dat的版本信息)
while ($l <= $u) { // 当上边界小于下边界时,查找失败
$i = floor(($l + $u) / 2); // 计算近似中间记录
fseek($this->fp, $this->firstip + $i * 7);
$beginip = strrev(fread($this->fp, 4)); // 获取中间记录的开始IP地址
// strrev函数在这里的作用是将little-endian的压缩IP地址转化为big-endian的格式
// 以便用于比较,后面相同。
if ($ip < $beginip) { // 用户的IP小于中间记录的开始IP地址时
$u = $i - 1; // 将搜索的上边界修改为中间记录减一
}
else {
fseek($this->fp, $this->getlong3());
$endip = strrev(fread($this->fp, 4)); // 获取中间记录的结束IP地址
if ($ip > $endip) { // 用户的IP大于中间记录的结束IP地址时
$l = $i + 1; // 将搜索的下边界修改为中间记录加一
}
else { // 用户的IP在中间记录的IP范围内时
$findip = $this->firstip + $i * 7;
break; // 则表示找到结果,退出循环
}
}
}

//获取查找到的IP地理位置信息
fseek($this->fp, $findip);
$location['beginip'] = long2ip($this->getlong()); // 用户IP所在范围的开始地址
$offset = $this->getlong3();
fseek($this->fp, $offset);
$location['endip'] = long2ip($this->getlong()); // 用户IP所在范围的结束地址
$byte = fread($this->fp, 1); // 标志字节
switch (ord($byte)) {
case 1: // 标志字节为1,表示国家和区域信息都被同时重定向
$countryOffset = $this->getlong3(); // 重定向地址
fseek($this->fp, $countryOffset);
$byte = fread($this->fp, 1); // 标志字节
switch (ord($byte)) {
case 2: // 标志字节为2,表示国家信息又被重定向
fseek($this->fp, $this->getlong3());
$location['country'] = $this->getstring();
fseek($this->fp, $countryOffset + 4);
$location['area'] = $this->getarea();
break;
default: // 否则,表示国家信息没有被重定向
$location['country'] = $this->getstring($byte);
$location['area'] = $this->getarea();
break;
}
break;
case 2: // 标志字节为2,表示国家信息被重定向
fseek($this->fp, $this->getlong3());
$location['country'] = $this->getstring();
fseek($this->fp, $offset + 8);
$location['area'] = $this->getarea();
break;
default: // 否则,表示国家信息没有被重定向
$location['country'] = $this->getstring($byte);
$location['area'] = $this->getarea();
break;
}
if ($location['country'] == " CZ88.NET") { // CZ88.NET表示没有有效信息
$location['country'] = "未知";
}
if ($location['area'] == " CZ88.NET") {
$location['area'] = "";
}
return $location;
}

/**
* 构造函数,打开 QQWry.Dat 文件并初始化类中的信息
*
* @param string $filename
* @return IpLocation
*/
function IpLocation($filename = "QQWry.Dat") {
$this->fp = 0;
if (($this->fp = @fopen($filename, 'rb')) !== false) {
$this->firstip = $this->getlong();
$this->lastip = $this->getlong();
$this->totalip = ($this->lastip - $this->firstip) / 7;
//注册析构函数,使其在程序执行结束时执行
register_shutdown_function(array(&$this, '_IpLocation'));
}
}

/**
* 析构函数,用于在页面执行结束后自动关闭打开的文件。
*
*/
function _IpLocation() {
if ($this->fp) {
fclose($this->fp);
}
$this->fp = 0;
}
}
?>

㈢ 访问某些网页被恶意跳转了怎么办,有没有什么风险

这个是没有办法避免的。
国外正在开发最新的纯净版的浏览器,但国内下载不下来。
网吧的系统每次重启都基本等于重做系统的概念,不用担心中毒。
但是你的账号密码在登录的时候要注意不要保存密码,网页会有提示。
可以使用 电脑自带的软键盘完成 输入账号密码操作。避免被盗号。

㈣ 局域网内网用户访问做跳转

架设dns服务器,在dns服务器内设定好。
然后要求内网用用户用内网的dns呀。
不然就在路由那做手脚了。和电信一样。访问外网的时候第一次都转到自己的内网服务器。不过你的路由要有这个功能才行。