Java調(diào)用新浪api通過(guò)Ip查詢(xún)地區(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ù)里以前的用戶(hù),根據(jù)Ip,新增對(duì)應(yīng)的地區(qū),需要大批量執(zhí)行,結(jié)果用淘寶的接口,不是報(bào)超時(shí),就是延緩,設(shè)置線(xiàn)程休眠,防止跨越淘寶規(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. .NET中l(wèi)ambda表達(dá)式合并問(wèn)題及解決方法2. CSS hack用法案例詳解3. PHP設(shè)計(jì)模式中工廠(chǎng)模式深入詳解4. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息5. Ajax實(shí)現(xiàn)表格中信息不刷新頁(yè)面進(jìn)行更新數(shù)據(jù)6. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明7. 解決AJAX返回狀態(tài)200沒(méi)有調(diào)用success的問(wèn)題8. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過(guò)程(親測(cè)可用)9. JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析10. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向
