Js根据Ip地址自动判断是哪个城市

JavaScript018

Js根据Ip地址自动判断是哪个城市,第1张

如果只是写浏览器端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接口

引用下面的js:

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

直接获取IP和城市名:

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

一般项目中,用户的登陆信息储存在一个session中,判断登陆成功后,利用用户ID之类找到该用户所有信息,然后放在这个用户的对象之中:

User loginUser= userDao.getUser(id)//getUser(id)是通过id查找为传入id的用户的所有信息,并返回一个对象

request.getSession().setAttribute("user",loginUser)//把当前用户存入名为user的session中

jsp页面获得如下:

页面开头可以获得用户的某项信息,例如名字:

<%

String name=((User)session.getAttribute("user")).getName()

%>

然后js中得到这个name值:

</script>

var loginName="<%=name%>"

<script>

然后其他的值类似获得。

这是常用的方法,希望对你有用