因为自己网站后台做了一个进站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的定位的更多相关文章

  1. 获取客户端IP地址定位城市信息

    获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (iss ...

  2. C#获取指定IP地址的数据库所有数据库实例名

    /// <summary> /// 获取指定IP地址的数据库所有数据库实例名. /// </summary> /// <param name="ip" ...

  3. shell 获取指定ip的丢包率

    shell 获取指定ip的丢包率 丢包率大于10%就重新网络 使用sed 替换字符串 [[ $(ping -c 10 -W 1 baidu.com | awk '$6 ~ /%/{print $6}' ...

  4. wireshark抓包获取好友ip,定位所在位置

    1.打开wireshark 2.按Ctrl + F 键进行搜索 1,选择搜索 “字符串”; 2,选择搜索 “分组详情”; 3,填写搜索数据 “020048″; 3.对qq好友发起语言或视频通话(需要对 ...

  5. 获取指定IP地址对应的物理位置

    # -*- coding: utf-8 -*- import requests def get_physical_location(ip): url = 'http://ip.taobao.com/s ...

  6. 获取指定ip段的所有存活主机的主机名和操作系统

    https://jingyan.baidu.com/article/ceb9fb1089fd948cad2ba000.html java探测局域网存活 https://blog.csdn.net/we ...

  7. Linux 下获取LAN中指定IP的网卡的MAC(物理地址)

    // all.h// 2005/06/20,a.m. wenxy #ifndef _ALL_H#define _ALL_H #include <memory.h>#include < ...

  8. 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容

    <?php /************************ * 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容 * 创建时间:2008-12-09 * 创建人:张宴(img. ...

  9. GeoIP简介与资源,定位经纬度,获取用户IP

    所谓GeoIP,就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息.这里面的技术不算难题,关键在于有个精准的数据库.有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡 ...

随机推荐

  1. @Value注解没有起作用的梳理

    今天在使用@Value注解的时候遇到其不起作用的现象,先把场景说明一下:现在有A类和B类,而A类对象是通过new操作生成的临时对象,而B类对象是在A类中使用的:调试步骤如下: (1)将B类的属性字段都 ...

  2. IIS7配置asp程序

    Windows 中IIS7.IIS7.5是默认不安装的,所以在安装完Windows Vista/windows 7/windows 2008之后如果需要安装IIS7/iis7.5的话,就要自己动手了. ...

  3. UVA1601-双向广度优先搜索

    #include <iostream> #include <cstdio> #include <queue> #include <cstring> us ...

  4. PAT (Advanced Level) Practice 1054 The Dominant Color (20 分)

    Behind the scenes in the computer's memory, color is always talked about as a series of 24 bits of i ...

  5. 0级搭建类013-CentOS 8.x 安装

    CentOS 8 操作系统安装

  6. 0级搭建类005-Oracle Solaris Unix安装 (11.4) 公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  7. JN_0009:win下快捷键注销,关机,重启

    注销:  wn + x  + U  再按 I 键 关机: win + x  + U  再按 U 键 重启: win + x  + U  再按 R 键

  8. C# 读取Excel到DataTable两种方式对比

    方式一 OLEDB读取 数据库引擎 优点:读取速度快,依据sheet排序读取 缺点:对于Excel版本依赖强,无法读取指定sheet 错误提示:本地计算机未指定 Microsoft.ACE.OLEDB ...

  9. Mysql快速入门(二)

    多表关联查询 JOIN 按照功能大致分为如下三类: CROSS JOIN(交叉连接) INNER JOIN(内连接或等值连接). OUTER JOIN(外连接) 交叉连接 交叉连接的关键字:CROSS ...

  10. 查找pod使用的物理目录位置

    例子:找出当前pod挂载的是哪个物理目录 # 先查看pod web-0 的yaml文件 # kubectl get pod web-0 -o yaml apiVersion: v1 kind: Pod ...