js怎么获取客户端IP

JavaScript023

js怎么获取客户端IP,第1张

通过搜狐的ip查询接口实现

$(function(){

    var api = "://pv.sohu.com/cityjson"//前面加上http

    //这里api是搜狐IP地址查询接口

    $.get(api,function(data){

        var script = $('<script type="text/javascript"/>')[0]

        script.defer = true

        script.text = data

        $(script).appendTo("head")

        console.log("cid : " + returnCitySN.cid)

        console.log("cip : " + returnCitySN.cip)//得到IP

        console.log("cname : " + returnCitySN.cname)//得到城市

    },"text")

})

JavaScript 获取的 IP 有个优点就是它获取的是本机设置的 IP,如果计算机通过局域网上网,那么它获得的就是计算机的局域网 IP,而不像 ASP 中 Request 获取的是计算机连接到互联网的 IP。通过两种获取 IP 的方法,就可以确定某一台计算机。

代码:

<html>

<head>

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

<title>JavaScript获取客户端IP</title>

</head>

<body>

<script type="text/javascript" language="javascript">

<!--

function GetLocalIPAddress()

{

var obj = null

var rslt = ""

try

{

obj = new ActiveXObject("rcbdyctl.Setting")

rslt = obj.GetIPAddress

obj = null

}

catch(e)

{

//异常发生

}

return rslt

}

document.write("你的IP是:" + GetLocalIPAddress())

//-->

</script>

</body>

</html>

在使用中可能会出现类似下图的警告,点击“是”,就可以运行了,也可以在【Internet 选项】中【安全】->【ActiveX 控件和插件】->【对没有标记为安全的 ActiveX 控件进行初始化和脚本运行】设置为【启用】,就不会弹出对话框了。有时候测试时因代码出错既不弹出对话框,也不显示 IP,更正代码后也是一样的情况,这时你需要重新打开 IE 进行测试,在实际使用中,不会出现类似情况。