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,定位他的经纬度,国家/地区,省市,甚至街道等位置信息.这里面的技术不算难题,关键在于有个精准的数据库.有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡 ...
随机推荐
- VUE动画Javascript钩子不生效问题记录
举例小球动画如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- scrapy框架综合运用 爬取天气预报 + 定时任务
爬取目标网站: http://www.weather.com.cn/ 具体区域天气地址: http://www.weather.com.cn/weather1d/101280601.shtm(深圳) ...
- 关于学习java虚拟机的知识整理一:jvm内存区域
之前由于考研,对于虚拟机的认识疏忽了太多,现在重新整理回顾一下. 如上图所示,jvm的内存区域(运行时数据区)共分为5处:方法区(Method Area).虚拟机栈(vm Stack).本地方法栈(N ...
- MySQL的数据库备份
MySQL的数据库备份 备份的原因: 1.保证重要数据不丢失 2.数据转移 MySQL数据库备份方式: 1.方法1:在Sqlyog这种可视化工具中手动导出 2.方法2:直接拷贝物理文件(就是data文 ...
- BZOJ3172&&lg3966 TJOI单词(广义后缀自动机)
BZOJ3172&&lg3966 TJOI单词(广义后缀自动机) 题面 自己找去 HINT 给出多个文本串,让你查找每个文本串一共出现了多少次,广义后缀自动机建出parent tree ...
- asp.net core 自定义基于 HttpContext 的 Serilog Enricher
asp.net core 自定义基于 HttpContext 的 Serilog Enricher Intro 通过 HttpContext 我们可以拿到很多有用的信息,比如 Path/QuerySt ...
- mybatis - 基于拦截器修改执行中的SQL语句
拦截器介绍 mybatis提供了@Intercepts注解允许开发者对mybatis的执行器Executor进行拦截. Executor接口方法主要有update.query.commit.rollb ...
- P5168 xtq玩魔塔 [克鲁斯卡尔重构树+带修莫队]
P5168 xtq玩魔塔 又是码农题- 利用克鲁斯卡尔重构树的性质 我们就可以得出 \(dep\) 值小的,肯定比 \(dep\) 大的值要优. 于是第二问就可以直接 LCA 求出来了- 至于第三问, ...
- C++-POJ3070-Fibonacci-[矩阵乘法][快速幂]
#include <cstdio> ][];}; ,MOD=1e4; Matrix A,B,O,I; Matrix Mul(Matrix A,Matrix B){ Matrix C=O; ...
- 合唱队形【dp】
链接:https://ac.nowcoder.com/acm/contest/1082/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言2621 ...