java_获取指定ip的定位
因为自己网站后台做了一个进站ip统计,之前只是获取了ip,这次优化了下,把ip的大致区域弄出来了
废话不多说,进正题
首先要用到几个网络大头的api
淘宝API:http://ip.taobao.com/service/getIpInfo.php?ip=218.192.3.42
新浪API:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=218.192.3.42
pconline API:http://whois.pconline.com.cn/
百度API:http://api.map.baidu.com/location/ip?ip=218.192.3.42 接下来用json解析返回的数据就好
下面直接上解析源码(不是网站的源码,是之前java测试的源码,原理一样)
package exe; import net.sf.json.JSONObject; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner; /**
* 通过淘宝的API来获取指定IP的定位
*/ /**
* 各种API接口
* 淘宝API:http://ip.taobao.com/service/getIpInfo.php?ip=218.192.3.42
* 新浪API:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=218.192.3.42
* pconline API:http://whois.pconline.com.cn/
* 百度API:http://api.map.baidu.com/location/ip?ip=218.192.3.42
*/
public class get_analyse_ip {
/**
* 涉及到解析json
*/
public static void main(String[] args) {
HttpURLConnection connection ;
String api = "http://ip.taobao.com/service/getIpInfo.php";
String connect_symbol = "?";
String front_name = "ip=";
Scanner sc = new Scanner(System.in);
String real_ip = sc.next();
URL url ;
BufferedReader bf ;
StringBuffer sb = new StringBuffer();
try {
url = new URL(api+connect_symbol+front_name+real_ip);
connection = (HttpURLConnection)url.openConnection();
bf = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
String line = "";
while(null!=(line = bf.readLine())){
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
// System.out.println(sb);
JSONObject dataObject = JSONObject.fromObject(sb.toString());
JSONObject jsonObject= dataObject.getJSONObject("data");
System.out.println(jsonObject.toString());
System.out.println("ip:"+jsonObject.get("ip"));
System.out.println("country:"+jsonObject.get("country"));
System.out.println("area:"+jsonObject.get("area"));
System.out.println("region:"+jsonObject.get("region"));
System.out.println("county:"+jsonObject.get("county"));
System.out.println("isp:"+jsonObject.get("isp"));
System.out.println("city:"+jsonObject.get("city"));
System.out.println("country_id:"+jsonObject.get("country_id"));
System.out.println("area_id:"+jsonObject.get("area_id"));
System.out.println("region_id:"+jsonObject.get("region_id"));
System.out.println("city_id:"+jsonObject.get("city_id"));
System.out.println("county_id:"+jsonObject.get("county_id"));
System.out.println("isp_id:"+jsonObject.get("isp_id")); }
}
要导入json第三方jar包,方法自行百度,在此不赘述
希望对大家有所帮助
以上
java_获取指定ip的定位的更多相关文章
- 获取客户端IP地址定位城市信息
获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (iss ...
- C#获取指定IP地址的数据库所有数据库实例名
/// <summary> /// 获取指定IP地址的数据库所有数据库实例名. /// </summary> /// <param name="ip" ...
- shell 获取指定ip的丢包率
shell 获取指定ip的丢包率 丢包率大于10%就重新网络 使用sed 替换字符串 [[ $(ping -c 10 -W 1 baidu.com | awk '$6 ~ /%/{print $6}' ...
- wireshark抓包获取好友ip,定位所在位置
1.打开wireshark 2.按Ctrl + F 键进行搜索 1,选择搜索 “字符串”; 2,选择搜索 “分组详情”; 3,填写搜索数据 “020048″; 3.对qq好友发起语言或视频通话(需要对 ...
- 获取指定IP地址对应的物理位置
# -*- coding: utf-8 -*- import requests def get_physical_location(ip): url = 'http://ip.taobao.com/s ...
- 获取指定ip段的所有存活主机的主机名和操作系统
https://jingyan.baidu.com/article/ceb9fb1089fd948cad2ba000.html java探测局域网存活 https://blog.csdn.net/we ...
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
// all.h// 2005/06/20,a.m. wenxy #ifndef _ALL_H#define _ALL_H #include <memory.h>#include < ...
- 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容
<?php /************************ * 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容 * 创建时间:2008-12-09 * 创建人:张宴(img. ...
- GeoIP简介与资源,定位经纬度,获取用户IP
所谓GeoIP,就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息.这里面的技术不算难题,关键在于有个精准的数据库.有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡 ...
随机推荐
- 在eclipse更新启动项目
说明:figfree是基于模块化开发,代码重用,可拆解性高. 功能模块分为:接口工程(*.Iface).接口实现工程(*.Impl).客户端工程(*.Client) 接口工程(*.Iface):对其他 ...
- C#读取excel时提示“外部数据库驱动程序 (1) 中的意外错误”
- P1282 多米诺骨牌【dp】
P1282 多米诺骨牌 提交 20.02k 通过 6.30k 时间限制 1.00s 内存限制 125.00MB 题目提供者洛谷 难度提高+/省选- 历史分数100 提交记录 查看题解 标签 查看算 ...
- 树莓派3b 换国内源 更新源
在国内要更新源的时候,因为是国外的源,总会出现网速太慢的问题, 以下是对于安装了,2017-11-29-raspbian-stretch 系统源 更换最好用root登陆操作 sudo passwd r ...
- PAT 基础编程题目集 6-10 阶乘计算升级版 (20 分)
本题要求实现一个打印非负整数阶乘的函数. 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000.如果N是非负整数,则该 ...
- AI算法:1. 决策树
今天,我们介绍的机器学习算法叫决策树. 跟之前一样,介绍算法之前先举一个案例,然后看一下如何用算法去解决案例中的问题. 我把案例简述一下:某公司开发了一款游戏,并且得到了一些用户的数据.如下所示: 图 ...
- Python学习笔记三:数据特征分析
完成数据清理后,下面通过图表展开对数据的分析. 1.前期初判(分布分析): 1)判断分组区间: # a.散点图:plt.scatter(data[字段1],data['字段2'], s = data[ ...
- Leetcode Week3 Merge Two(k) Sorted Lists
Question Q1.Merge two sorted linked lists and return it as a new list. The new list should be made b ...
- C++-HDU3400-Line belt[三分]
将军饮马问题的升级版 二维平面中要从A到D,给出两条线段AB,CD,分别在线段AB,CD,以及空白处的速度为P,Q,R 求最少用时 由于最优位置满足“凸性”,且两条线段可以等价,所以可以采取三分答案迭 ...
- 题解【AcWing279】自然数拆分
题面 因为题目中说参与加法运算的数可以重复,由此可以想到完全背包计数问题. 完全背包计数问题与 \(01\) 背包计数问题只有一个不同: \(01\) 背包计数问题的第二维循环是倒叙循环,而完全背包计 ...