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>

java调用新浪接口根据Ip查询所属地区的更多相关文章

  1. JS 利用新浪接口通过IP地址获取当前所在城市

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">< ...

  2. php调用新浪API生成t.cn短网址链接

    新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接. API: http://api.t.sina.com.cn/short_url/shorten.json ( ...

  3. 转载:腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口

    腾讯的接口是 ,返回数组 http://fw.qq.com/ipaddress 返回值 var IPData = new Array("61.135.152.194"," ...

  4. Python如何调用新浪api接口的问题

    前言:这些天在研究如何调用新浪开放平台的api分析新浪微博用户的数据 成果:成功调用了新浪api获取了用户的一些个人信息和无数条公共微博 不足:新浪开放平台访问有限制,返回的数据着实有限,不足以分析问 ...

  5. 使用JAVA实现模拟登陆并发送新浪微博(非调用新浪API)

    没有调用新浪的API,在程序中加入自己的帐号和密码就能发送微博,代码完全在后台运行,不用打开浏览器. 用了HtmlUnit这个库来模拟登录还有发送微博. 先上效果图: 这个是刚登陆上获取第一页的信息. ...

  6. Java调用第三方http接口的方式

    1. 概述 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适.很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信.天气等). 在J ...

  7. [88221008]调用新下单接口失败,result:162020004,resInfo

    [88221008]调用新下单接口失败,result:162020004,resInfo

  8. Java调用Http/Https接口(6)--RestTemplate调用Http/Https接口

    RestTemplate是Spring提供的用于访问Http接口的客户端,提供同步的API:在将来的Spring版本中可能会过时,将逐渐被WebClient替代.文中所使用到的软件版本:Java 1. ...

  9. Java调用Http/Https接口(5)--HttpAsyncClient调用Http/Https接口

    HttpAsyncClient是HttpClient的异步版本,提供异步调用的api.文中所使用到的软件版本:Java 1.8.0_191.HttpClient 4.1.4. 1.服务端 参见Java ...

随机推荐

  1. GIS基础软件及操作(十)

    原文 GIS基础软件及操作(十) 练习十.网络分析 (1) 加深对网络分析基本原理.方法的认识:(2) 熟练掌握ARCGIS下进行道路网络分析的技术方法:(3) 结合实际.掌握利用网络分析方法解决地学 ...

  2. 关于powerdesigner中的data types说明

    原文:关于powerdesigner中的data types说明 这一堆的数据类型看着真是头大,弄个表格对照一下. Numeric data types Standard datatype DBMS- ...

  3. 关于SetLocaleInfo()

    原文:关于SetLocaleInfo() 此函数用于设置系统的一些本地信息, 非常有用. 比如日期格式为'yyyy/mm/dd'时, 稍微不注意,有些程序语句会报错. 以下资料网络收集: 1. Set ...

  4. Delphi与Windows 7下的用户账户控制(UAC)机制(有可能需要取消enable runtime themes)

    WIN7/WIN8/WIN10, Vista提供的UAC机制,它的主要目的是防止对于操作系统本身的恶意修改.对于Delphi程序的影响,UAC主要在于以下几点:1.由于UAC机制,Delphi对于系统 ...

  5. 一个基于jQuery写的弹窗效果(附源码)

    最近项目中频繁遇到需要弹出窗口的功能,一直使用浏览器默认的Alert和Confirm弹窗,感觉视觉效果不是那么好,而从网上下载的话又找不到合适的,找到的话有些也是十分臃肿,有时候感觉学习配置的功夫自己 ...

  6. python中的命名空间以及函数的嵌套

    一.动态传参 函数的形参中除了默认值参数和位置参数外,还有动态传参.当不确定形参有几个或者有很多的时候,就可以使用动态传参. 1.1 动态接收位置参数 在python中使用*来接收动态位置参数 def ...

  7. 【Web前端Talk】无聊吗?写个【飞机大战】来玩吧(上篇)

    01前言介绍 微信小游戏是基于微信客户端的游戏,它即点即玩,无需下载安装,体验轻便,可以和微信内的好友一起玩,比如PK.围观等,享受小游戏带来的乐趣.那如何开发一款属于自己的小游戏呢? 源码地址: h ...

  8. Python连载8-datetime包函数介绍

    一.datetime包(上接连载7内容) 1.函数:datetime (1)用法:输入一个日期,来返回一个datetime类​ (2)格式:datetime.datetime(年,月,日,hour=, ...

  9. YARN分析系列之二 -- Hadoop YARN各个自模块说明

    先做如下声明,本代码版本是基于 3.1.2 版本. 其实,我们自己在写代码的时候,会有意识地将比较大的功能项独立成包,独立成module, 独立成项目,项目之间的关系既容易阅读理解,又便于管理. 如下 ...

  10. Android项目开发之--------地铁时光机(一,搭建主框架)

    一:先看一下框架搭建后的效果图      , 二:框架结构 (1)底部导航栏采用的是: MainActivity(主框架), MsgFragment(首页), HistoryFragment(历史清单 ...