java實(shí)現(xiàn)根據(jù)ip地址獲取地理位置的代碼分享
前幾天想給網(wǎng)站后臺(tái)加個(gè)解析ip所在地理位置的功能,在網(wǎng)上看了一些博客,找了幾段程序,但總覺得寫的不夠簡潔,感覺很啰嗦。下面這個(gè)程序,感覺還算簡潔,于是整理調(diào)試了一下,可以用,程序調(diào)用了“騰訊ip分享計(jì)劃”提供的接口,當(dāng)然也可以改成ip138提供的接口,不過這兩個(gè)網(wǎng)站返回的字符串格式有些不同,要分別做解析。
public String getAddressByIP()
{
try
{
String strIP = "0.0.0.0";
URL url = new URL( "http://ip.qq.com/cgi-bin/searchip?searchip1=" + strIP);
URLConnection conn = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));
String line = null;
StringBuffer result = new StringBuffer();
while((line = reader.readLine()) != null)
{
result.append(line);
}
reader.close();
strIP = result.substring(result.indexOf( "該IP所在地為:" ));
strIP = strIP.substring(strIP.indexOf( ":") + 1);
String province = strIP.substring(6, strIP.indexOf("省"));
String city = strIP.substring(strIP.indexOf("省") + 1, strIP.indexOf("市"));
... ...
... ...
}
catch( IOException e)
{
return "讀取失敗";
}
}
附:
新浪接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=
淘寶接口:http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串]
相關(guān)文章
spring?boot集成smart-doc自動(dòng)生成接口文檔詳解
這篇文章主要介紹了spring?boot集成smart-doc自動(dòng)生成接口文檔詳解,smart-doc是一款同時(shí)支持java?restful?api和Apache?Dubbo?rpc接口文檔生成的工具,smart-doc顛覆了傳統(tǒng)類似swagger這種大量采用注解侵入來生成文檔的實(shí)現(xiàn)方法2022-09-09
Servlet3.0實(shí)現(xiàn)文件上傳的方法
本篇文章主要介紹了Servlet實(shí)現(xiàn)文件上傳的方法,所謂文件上傳就是將本地的文件發(fā)送到服務(wù)器中保存。有興趣的可以了解一下。2017-03-03
java報(bào)錯(cuò)Cause: java.sql.SQLException問題解決
本文主要介紹了java報(bào)錯(cuò)Cause: java.sql.SQLException問題解決,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
Java二進(jìn)制操作(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
這篇文章給大家介紹了java二進(jìn)制操作技巧,包括移位、位運(yùn)算操作符等相關(guān)知識點(diǎn),非常不錯(cuò),感興趣的朋友參考下吧2017-03-03
MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能(實(shí)例詳解)
這篇文章主要介紹了MybatisPlus?自定義插件實(shí)現(xiàn)攔截SQL修改功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
Java 函數(shù)式編程要點(diǎn)總結(jié)
函數(shù)式編程并不是Java新提出的概念,其與指令編程相比,強(qiáng)調(diào)函數(shù)的計(jì)算比指令的計(jì)算更重要;與過程化編程相比,其中函數(shù)的計(jì)算可以隨時(shí)調(diào)用。Java8新引入函數(shù)式編程方式,大大的提高了編碼效率。本文將對涉及的對象等進(jìn)行統(tǒng)一的學(xué)習(xí)及記錄。2021-06-06
Java實(shí)現(xiàn)讀取html文本內(nèi)容并按照格式導(dǎo)出到excel中
這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)讀取html文本提取相應(yīng)內(nèi)容按照格式導(dǎo)出到excel中,文中的示例代碼講解詳細(xì),需要的可以參考下2024-02-02
Java多線程并發(fā)之線程池任務(wù)請求攔截測試實(shí)例
這篇文章主要介紹了Java多線程并發(fā)之線程池任務(wù)請求攔截測試實(shí)例,隊(duì)列中永遠(yuǎn)沒有線程被加入,即使線程池已滿,也不會(huì)導(dǎo)致被加入排隊(duì)隊(duì)列,實(shí)現(xiàn)了只有線程池存在空閑線程的時(shí)候才會(huì)接受新任務(wù)的需求,需要的朋友可以參考下2023-12-12

