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,定位他的经纬度,国家/地区,省市,甚至街道等位置信息.这里面的技术不算难题,关键在于有个精准的数据库.有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡 ...
随机推荐
- jquery form表单赋值封装
;!(function ($) { $.fn.setFormValue = function (options) { var $this = $(this); $.each(options, func ...
- idea插件不兼容问题
https://plugins.jetbrains.com/ 找对应版本的插件
- simmon effect : build the funcion of trail list
#the real experiment for simon effect #load the library which is our need import pygame import sys i ...
- python之路(集合,深浅copy,基础数据补充)
一.集合:类似列表,元组的存储数据容器,不同点是不可修改,不可重复.无序排列. 1.创建集合: (1).set1 = {'abby', 'eric'} result:{'eric', 'abby'} ...
- ubuntu16.04更换成国内源
一.首先使用自带的vi编辑器 安装完ubuntu后没有默认的root密码,如果要设置root密码需要进行如下步骤: 1 sudo passwd 2 连续输入两次新密码 二.vi编辑器下使用[backs ...
- springboot~gradle4.7之后的lombok引用方法
在gradle4.7以后对于加入依赖lombok方式发生变化,gradle4.7版本以前,可以直接如下引用: compile("org.projectlombok:lombok:1.18.2 ...
- 关闭Apache的目录浏览功能
一.默认情况 默认情况下,Apache的配置文件C:\web\apache2.4\conf/httpd.conf中有如下参数: 引用 <Directory "/var/www/html ...
- Ubuntu 打不开终端 侧边栏消失的解决办法
在网上找了很多办法,大多不行,具体原因也不太清楚,应该是Unity某些配置被改了. 我是在ubuntu14.04平台利用apt-get卸载python后,关机重启出现"打不开终端和侧边栏消失 ...
- spring boot MySQL Public Key Retrieval is not allowed
建议在链接url处添加对应的属性 jdbc:mysql://localhost:3306/book?allowPublicKeyRetrieval=true&useSSL=false
- C++中多态实现的关键——虚函数
1.多态的作用 在面向对象程序设计中,使用多态能够增强代码的可扩充性,,即程序需要增加或修改部分功能时,只需修改少量代码就能够达到目的,此外多态也能起到精简代码的作用. 而实现多态的关键点,就是虚函数 ...