1.手机WEB定位方法:
 代码如下:
var getLocation = function (successFunc, errorFunc) { //successFunc获取定位成功回调函数,errorFunc获取定位失败回调
 //首先设置默认城市
 var defCity = {
 id: '000001',
 name: '北京市',
 date: curDateTime()//获取当前时间方法
 };
 //默认城市
 $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { expires: 1, path: '/' });
 if (navigator.geolocation) {
 navigator.geolocation.getCurrentPosition(function (position) {
 var lat = position.coords.latitude;
 var lon = position.coords.longitude;
 //var map = new BMap.Map("container"); // 创建Map实例
 var point = new BMap.Point(lon, lat); // 创建点坐标
 var gc = new BMap.Geocoder();
 gc.getLocation(point, function (rs) {
 var addComp = rs.addressComponents;
 var curCity = {
 id: '',
 name: addComp.province,
 date: curDateTime()
 };
 //当前定位城市
 $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
 //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
 if (successFunc != undefined)
 successFunc(addComp);
 });
 },
 function (error) {
 switch (error.code) {
 case 1:
 alert("位置服务被拒绝。");
 break;
 case 2:
 alert("暂时获取不到位置信息。");
 break;
 case 3:
 alert("获取位置信息超时。");
 break;
 default:
 alert("未知错误。");
 break;
 }
 var curCity = {
 id: '000001',
 name: '北京市',
 date: curDateTime()
 };
 //默认城市
 $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
 if (errorFunc != undefined)
 errorFunc(error);
 }, { timeout: 5000, enableHighAccuracy: true });
 } else {
 alert("你的浏览器不支持获取地理位置信息。");
 if (errorFunc != undefined)
 errorFunc("你的浏览器不支持获取地理位置信息。");
 }
};
var showPosition = function (position) {
 var lat = position.coords.latitude;
 var lon = position.coords.longitude;
 //var map = new BMap.Map("container"); // 创建Map实例
 var point = new BMap.Point(lon, lat); // 创建点坐标
 var gc = new BMap.Geocoder();
 gc.getLocation(point, function (rs) {
 var addComp = rs.addressComponents;
 var curCity = {
 id: '',
 name: addComp.province,
 date: curDateTime()
 };
 //当前定位城市
 $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
 //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
 });
};
var showPositionError = function (error) {
 switch (error.code) {
 case 1:
 alert("位置服务被拒绝。");
 break;
 case 2:
 alert("暂时获取不到位置信息。");
 break;
 case 3:
 alert("获取位置信息超时。");
 break;
 default:
 alert("未知错误。");
 break;
 }
 var curCity = {
 id: '000001',
 name: '北京市',
 date: curDateTime()
 };
 //默认城市
 $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
};
前提要引入百度API: script>
2.PC端通过IP实现方法:
采用腾讯提供的接口,这个目前已经不能使用了
 代码如下:
http://fw.qq.com/ipaddress"> script>
 document.write(IPData[0]); //显示IP地址
 document.write(IPData[2]); //显示省
 document.write(IPData[3]); //显示市
 script>
采用新浪接口: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=127.0.0.1
 代码如下:
 $.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js', function(_result) {
 if (remote_ip_info.ret == '1') {
 alert('国家:' + remote_ip_info.country + '
省:' + remote_ip_info.province + '
市:' + remote_ip_info.city + '
区:' + remote_ip_info.district + '
ISP:' + remote_ip_info.isp + '
类型:' + remote_ip_info.type + '
其他:' + remote_ip_info.desc);
 } else {
 alert('没有找到匹配的IP地址信息!');
 }
 });
 script>
网易有道IP地址接口(这个有待测试)
http://www.youdao.com/smartresult-xml/search.s?type=ip&q=IP地址
淘宝请求接口(GET)
 代码如下:
var ip = "124.127.108.133";
 var url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip;
 $.getJSON(url, function (json) {
 var myprovince2 = json.data.area;
 var mycity2 = json.data.region;
 alert("您所在的城市是:" + myprovince2 + mycity2);
 });
 script>
太平洋IP地址库API接口
http://whois.pconline.com.cn/?ip=[ip地址字符串]
另外:还有google、搜狐等提供对应的接口,大家可以自己试一试。
搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson
搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8
搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip
3.获取客户端IP方法
 代码如下:
var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' + Math.random();
 $.getJSON(url, function(data) {
 alert(data.Ip);
 });
 script>
  
今天就写到这吧,还有好多工作需要去完成,等有时间了可以试试其它接口。欢迎大家来拍砖,提供更好的方法。
下载本文