Java調(diào)用新浪api通過(guò)Ip查詢地區(qū)
代碼如下
import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import javax.servlet.http.HttpServletRequest;public class sinaIpUtil { public static void main(String[] args) { String ip = '223.104.145.001'; String[] areaArr = getAreaInfoList(ip); for (int i = 0; i < areaArr.length; i++) { System.out.println(areaArr[i]); } } public static String[] getAreaInfoList(String ip){ String urlString = ''; String[] areaArr = new String[10]; String[] newAreaArr = new String[3]; urlString = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip='+ip; try { URL url = new URL(urlString); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is,'gb2312')); String line =''; StringBuffer resultBuffer = new StringBuffer(); while ((line=br.readLine())!=null) {resultBuffer.append(line); } br.close(); is.close(); conn.disconnect(); areaArr = (resultBuffer.toString()).split(' '); newAreaArr[0] = areaArr[3]; newAreaArr[1] = areaArr[4]; newAreaArr[2]=areaArr[5]; } catch (Exception e) { // TODO: handle exception }return newAreaArr; } /** * * @param request * @param flag * 0:表示apache或者其它做主服務(wù)器; 1:表示nginx做主服務(wù). * @return */ public static String getRemoteAddr(HttpServletRequest request, int flag) { String result = ''; int port = 80; try { port = request.getServerPort(); if (flag == 1) {if (port == 80) result = request.getHeader('X-Real-IP');else result = request.getRemoteAddr(); } else {result = request.getRemoteAddr(); } } catch (Exception e) { ; } finally { return result; } }}
說(shuō)說(shuō)為什么我使用新浪的接口,起初是用的淘寶的接口,然后各種出錯(cuò),因?yàn)槲沂窍氚褞?kù)里以前的用戶,根據(jù)Ip,新增對(duì)應(yīng)的地區(qū),需要大批量執(zhí)行,結(jié)果用淘寶的接口,不是報(bào)超時(shí),就是延緩,設(shè)置線程休眠,防止跨越淘寶規(guī)定的頻率也不行,最后無(wú)奈只有舍去,結(jié)果用新浪的試下,什么都不用改,安靜的穩(wěn)定執(zhí)行完畢,所以發(fā)出來(lái)供各位研究。
js方法
<script src='http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js' type='text/javascript'></script> <script type='text/javascript'> function getIpPlace() { alert(remote_ip_info['province'] + '省' + , + remote_ip_info['city'] + '市') } </script>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. Ajax返回值類型與用法實(shí)例分析3. Vue element ui用戶展示頁(yè)面的實(shí)例4. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)5. 如何在jsp界面中插入圖片6. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)財(cái)務(wù)記賬管理系統(tǒng)7. 使用FormData進(jìn)行Ajax請(qǐng)求上傳文件的實(shí)例代碼8. css代碼優(yōu)化的12個(gè)技巧9. asp批量添加修改刪除操作示例代碼10. .NET6打包部署到Windows Service的全過(guò)程
