电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java獲取用戶訪問IP及地理位置的方法詳解

瀏覽:2日期:2022-09-03 08:43:06

本文實例講述了Java獲取用戶訪問IP及地理位置的方法。分享給大家供大家參考,具體如下:

獲取用戶訪問的IP地址

/** * 獲取用戶ip地址 * @return */public static String getIp(HttpServletRequest request){ String ip = request.getHeader('x-forwarded-for'); if (ip == null || ip.length() == 0 || 'unknown'.equalsIgnoreCase(ip)) { ip = request.getHeader('Proxy-Client-IP'); } if (ip == null || ip.length() == 0 || 'unknown'.equalsIgnoreCase(ip)) { ip = request.getHeader('WL-Proxy-Client-IP'); } if (ip == null || ip.length() == 0 || 'unknown'.equalsIgnoreCase(ip)) { ip = request.getHeader('HTTP_CLIENT_IP'); } if (ip == null || ip.length() == 0 || 'unknown'.equalsIgnoreCase(ip)) { ip = request.getHeader('HTTP_X_FORWARDED_FOR'); } if (ip == null || ip.length() == 0 || 'unknown'.equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip;}

IP地址獲取到后可以根據ip地址獲取地址位置

獲取ip地址有多種方法,可以調用百度,高度地圖的ip定位api服務,也可以調用網上的根據ip獲取定位的請求

高度地圖的ip定位api服務獲取

調用百度的ip定位api服務 詳見​​​http://lbsyun.baidu.com/index.php?title=webapi/ip-api

首先需要在百度地圖開放平臺申請一個百度地圖的ak

百度地圖開放平臺:http://lbsyun.baidu.com/

Java獲取用戶訪問IP及地理位置的方法詳解

創建連接,并讀取返回的json數據,返回一個json格式的數據。

對json轉換不了解的可以訪問:Alibaba Fastjson——超好用的JOSN解析庫

/** * 讀取 * * @param rd * @return * @throws IOException */private static String readAll(Reader rd) throws IOException {StringBuilder sb = new StringBuilder();int cp;while ((cp = rd.read()) != -1) {sb.append((char) cp);}return sb.toString();} /** * 創建鏈接 * * @param url * @return * @throws IOException * @throws JSONException */private static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {InputStream is = new URL(url).openStream();try {BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName('UTF-8')));String jsonText = readAll(rd);JSONObject json = JSONObject.parseObject(jsonText);return json;} finally {is.close();}}

根據http://api.map.baidu.com/location/ip?ip='+ip+'&ak='+ak這個網址去請求地理位置的json數據

返回的json格式數據:

Java獲取用戶訪問IP及地理位置的方法詳解

獲取請求返回的數據(根據自己需求去獲取)

/** * 百度獲取城市信息 * * @param ip * @return * @throws JSONException * @throws IOException */public static void main(String[] args) throws JSONException, IOException {String ip = '';// 百度地圖申請的akString ak = '';// 這里調用百度的ip定位api服務 詳見 http://api.map.baidu.com/lbsapi/cloud/ip-location-api.htmJSONObject json = readJsonFromUrl('http://api.map.baidu.com/location/ip?ip='+ip+'&ak='+ak); //這里只取出了兩個參數,根據自己需求去獲取 JSONObject obj = (JSONObject) ((JSONObject) json.get('content')).get('address_detail');String province = obj.getString('province');System.out.println(province);JSONObject obj2 = (JSONObject) json.get('content');String address = obj2.getString('address');System.out.println(address);}

輸出

Java獲取用戶訪問IP及地理位置的方法詳解

調用網上的根據ip獲取定位的請求

根據http://freeapi.ipip.net/ip這個網址可以獲取到ip對應的地理位置,之后發送請求去解析json數據

Java獲取用戶訪問IP及地理位置的方法詳解

和上面方法基本一樣,上面以為是一個json對象格式,這里是一個json數組格式,所以轉換和獲取數據方法不太一樣具體代碼如下

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;import java.net.URL;import java.nio.charset.Charset; import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONException;import com.alibaba.fastjson.JSONObject; public class pc1 {/** * 讀取 * * @param rd * @return * @throws IOException */private static String readAll(Reader rd) throws IOException {StringBuilder sb = new StringBuilder();int cp;while ((cp = rd.read()) != -1) {sb.append((char) cp);}return sb.toString();}/** * 創建鏈接 * * @param url * @return * @throws IOException * @throws JSONException */private static JSONArray readJsonFromUrl(String url) throws IOException, JSONException {InputStream is = new URL(url).openStream();try {BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName('UTF-8')));String jsonText = readAll(rd);JSONArray json = JSONArray.parseArray(jsonText);return json;} finally {is.close();}} /** * 獲取城市信息 * * @param ip * @return * @throws JSONException * @throws IOException */public static void main(String[] args) throws JSONException, IOException {String ip = '122.189.200.141';JSONArray json = readJsonFromUrl('http://freeapi.ipip.net/'+ip);String a1 = (String)json.get(0);String a2 = (String)json.get(1);String a3 = (String)json.get(2);String a4 = (String)json.get(3);String a5 = (String)json.get(4);System.out.println(a1);System.out.println(a2);System.out.println(a3);System.out.println(a4);System.out.println(a5);}}

輸出結果

Java獲取用戶訪問IP及地理位置的方法詳解

更多關于java相關內容感興趣的讀者可查看本站專題:《Java網絡編程技巧總結》、《Java Socket編程技巧總結》、《Java文件與目錄操作技巧匯總》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設計有所幫助。

標簽: Java
相關文章:
主站蜘蛛池模板: 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 深圳市索富通实业有限公司-可燃气体报警器 | 可燃气体探测器 | 气体检测仪 | 越南专线物流_东莞国际物流_东南亚专线物流_行通物流 | 云杂志网-学术期刊-首页| 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 陕西安闸机-伸缩门-车牌识别-广告道闸——捷申达门业科技 | 江苏皓越真空设备有限公司| 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 加盟店-品牌招商加盟-创业项目商机平台| 模具钢_高速钢_不锈钢-万利钢金属材料 | 众品家具网-家具品牌招商_家具代理加盟_家具门户的首选网络媒体。 | 卧涛科技有限公司科技项目申报公司|高新技术企业申报|专利申请 | 防爆正压柜厂家_防爆配电箱_防爆控制箱_防爆空调_-盛通防爆 | 铁素体测量仪/检测仪/铁素体含量测试仪-苏州圣光仪器有限公司 | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 数字展示在线_数字展示行业门户网站| 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 首页 - 军军小站|张军博客| 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 双效节能浓缩器-热回流提取浓缩机组-温州市利宏机械 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 溶氧传感器-pH传感器|哈美顿(hamilton) | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 真空乳化机-灌装封尾机-首页-温州精灌 | 车载加油机品牌_ 柴油加油机厂家| ph计,实验室ph计,台式ph计,实验室酸度计,台式酸度计 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 缓蚀除垢剂_循环水阻垢剂_反渗透锅炉阻垢剂_有机硫化物-郑州威大水处理材料有限公司 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 电子海图系统-电梯检验系统-智慧供热系统开发-商品房预售资金监管系统 |