Java調用新浪api通過Ip查詢地區
代碼如下
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或者其它做主服務器; 1:表示nginx做主服務. * @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; } }}
說說為什么我使用新浪的接口,起初是用的淘寶的接口,然后各種出錯,因為我是想把庫里以前的用戶,根據Ip,新增對應的地區,需要大批量執行,結果用淘寶的接口,不是報超時,就是延緩,設置線程休眠,防止跨越淘寶規定的頻率也不行,最后無奈只有舍去,結果用新浪的試下,什么都不用改,安靜的穩定執行完畢,所以發出來供各位研究。
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>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: