js如何获取当前用户访问的ip地址以及城市地

JavaScript010

js如何获取当前用户访问的ip地址以及城市地,第1张

引用下面的js:

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

直接获取IP和城市名:

alert(returnCitySN['cip'] + returnCitySN['cname'])

如果只是写浏览器端js的话,需要一个庞大的js问价的ip数据库

// 数据库

var database = {

'123.123.123.123': {

province: '北京市',

city: '北京市',

operators: '联通',

},

'123.123.123.124': {

province: '北京市',

city: '北京市',

operators: '联通',

}

// ...

}

// 主函数

var inquireIP = function (ip) {

if(database[ip]) {

return database[ip]

}else{

console.log('找不到ip:' + ip)

return null

}

}

// 调用

var ipData = inquireIP('123.123.123.123')

这样子这个js文件会很大,也可以调用API的形式,为方便下面js代码使用了jquery

// 主函数

var inquireIP = function (ip, callback) {

$.ajax({

url: '你的API接口地址',

type: 'GET',

dataType: 'jsonp',

data: {ip: ip}

})

.done(function(data) {

callback(data)

})

}

// 调用

inquireIP('123.123.123.123', function (data) {

console.log(data)

})

这样子就可以在服务端处理,当然提前你得有服务器,并搭建一个查询ip的API接口

先得保证客户端联网。然后利用某个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")

})