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. WPF应用程序嵌入第三方exe

    把其它应用嵌入到C#窗口 源代码-CSDN下载 https://download.csdn.net/download/aiqinghee/10652732 WPF应用程序嵌入第三方exe - gao2 ...

  2. WPF 用Main函数方式启动程序

    原文:WPF 用Main函数方式启动程序 WPF默认程序启动:新建project后自动生成的App.xaml中指定程序启动方式(StartupUri="MainWindow.xaml&quo ...

  3. 新兴技术袭来,Web开发如何抉择?

    土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/   使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434 ...

  4. How Qt Signals and Slots Work(感觉是通过Meta根据名字来调用)

    Qt is well known for its signals and slots mechanism. But how does it work? In this blog post, we wi ...

  5. Ruby元编程:动态添加类属性及其实际应用

    上个星期测试道的Monkey老师和我聊到测试用例参数过多的问题,其实这样的问题在我这里也同样经历过.比如我的测试用例必须面对不同的测试环境,每个环境有无数的参数,开发的最初阶段,因为参数少,所以就放在 ...

  6. uni-app $refs的基本用法

    $refs的基本用法 一个对象(Object),持有注册过 ref 特性 的所有 DOM 元素和组件实例. <template> <view class="containe ...

  7. 函数式编程里的Materialization应该翻译成什么?

    Materialization是函数式编程里的一个专业术语, 用于特指函数式编程中查询被实际执行并生成结果的这一过程. 首先, 搜了一下中文资料, 暂时没有对该词的中文翻译,  CSDN\博客园\阿里 ...

  8. Java入门网络编程-使用UDP通信

    程序说明: 以下代码,利用java的网络编程,使用UDP通信作为通信协议,描述了一个简易的多人聊天程序,此程序可以使用公网或者是局域网进行聊天,要求有一台服务器.程序一共分为2个包,第一个包:udp, ...

  9. Jmeter 如何把数据库的数据依次获取作为参数传入下一个请求?附栗子

    某一天碰到一个问题,觉得很有必要整理一篇文章出来~ 因为项目的原因,假设我们要实现如下要求: 从数据库的用户表里获取用户信息,并作为参数全部传递给登录请求,分别完成登录操作. 一.jmeter连接数据 ...

  10. vuex分模块后,如何获取state的值

    问题:vuex分模块后,一个模块如何拿到其他模块的state值,调其他模块的方法? 思路:1.通过命名空间取值--this.$store.state.car.list // OK 2.通过定义该属性的 ...