js获取的公网ip和电脑上查看的不一样

JavaScript04

js获取的公网ip和电脑上查看的不一样,第1张

横向比较与分析。

按日期横向来比较,不同网站查询到的IP地址不一样。为了方便说明这里先忽略第一列的保留地址,只看后面三列的数据,ip123和baidu查询IP都属于方正宽带,chinaz查询到的IP属于联通,这是因为长城宽带租用了基础运营商-联通的带宽,所以如果走联通的出口获取到的就是联通的公网IP。

这里也可以这么理解,当笔者本机请求ip138、baidu、chinaz这三个站点时,因为请求的目标站点不一样的,选择的出口不一致,因此接入公网的IP就不一样了。

一、使用JS获取客户端IP的几个方法

方法一(只针对IE且客户端的IE允许AcitiveX运行,通过台:XP,SERVER03,2000)。

获取客户端IP代码:

代码如下:

<HTML>

<HEAD>

<TITLE>GetLocalIP</TITLE>

</HEAD>

<BODY>

获取IP:

<script language="JavaScript">function GetLocalIPAddr(){ var

oSetting = nullvar ip = nulltry{ oSetting = new

ActiveXObject("rcbdyctl.Setting")ip = oSetting.GetIPAddressif

(ip.length == 0){ return "没有连接到Internet"} oSetting = null}catch(e){

return ip} return ip} document.write(GetLocalIPAddr()+"<br/>")

</script>

</BODY>

</HTML>

方法二(所有的平台及浏览器):

获取客户端处在网络中的IP,前提是客户得联网。使用的是新浪接口。

代码如下:

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<title>JavaScript获取客户端IP[利用新浪接口]</title>

</head>

<body>

<script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script> <!--获取接口数据,注意charset -->

<script type="text/javascript">

document.writeln("IP地址:"+ILData[0]+"<br />")//输出接口数据中的IP地址

document.writeln("地址类型:"+ILData[1]+"<br />")//输出接口数据中的IP地址的类型

document.writeln("地址类型:"+ILData[2]+"<br />")//输出接口数据中的IP地址的省市

document.writeln("地址类型:"+ILData[3]+"<br />")//输出接口数据中的IP地址的

document.writeln("地址类型:"+ILData[4]+"<br />")//输出接口数据中的IP地址的运营商

</script>

</body>

</html>

方法三(所有的平台及浏览器):

使用的搜狐接口

代码如下:

<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>

<script type="text/javascript">

document.write(returnCitySN["cip"]+','+returnCitySN["cname"])

</script>

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<title>JavaScript获取客户端IP[利用新浪接口]</title>

</head>

<body>

<script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script> <!--获取接口数据,注意charset -->

<script type="text/javascript">

document.writeln("IP地址:"+ILData[0]+"<br />")//输出接口数据中的IP地址

document.writeln("地址类型:"+ILData[1]+"<br />")//输出接口数据中的IP地址的类型

document.writeln("地址类型:"+ILData[2]+"<br />")//输出接口数据中的IP地址的省市

document.writeln("地址类型:"+ILData[3]+"<br />")//输出接口数据中的IP地址的

document.writeln("地址类型:"+ILData[4]+"<br />")//输出接口数据中的IP地址的运营商

</script>

</body>

</html>