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.42pconline 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包,方法自行百度,在此不赘述

希望对大家有所帮助

以上



原文地址:https://www.cnblogs.com/lavender-pansy/p/10905201.html

时间: 2024-07-31 17:58:37

java_获取指定ip的定位的相关文章

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

/// <summary> /// 获取指定IP地址的数据库所有数据库实例名. /// </summary> /// <param name="ip">指定的 IP 地址.</param> /// <param name="username">登录数据库的用户名.</param> /// <param name="password">登陆数据库的密码.</p

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

获取客户端IP地址定位城市信息 1.首先获取客户端的IP地址 function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $IPaddress = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if (isset($_SERVER["HTTP_CLIENT_IP&qu

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

# -*- coding: utf-8 -*- import requests def get_physical_location(ip): url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip r = requests.get(url) if r.json()['code']: print '您输入的ip地址有误,请检查后再试.' else: country = r.json()['data']['country'] regio

爬虫实例3——获取指定IP地址的物理位置

# -*- coding: utf-8 -*- import requests import json def get_physical_location(ip):     url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip     ip_data = requests.get(url).text     ip_dict = json.loads(ip_data)     if ip_dict.get('code'):     

获取局域网中指定IP或是主机名称的所有文件夹及其搜索文件

最近做个功能在局域网中所有指定文件,于是花了点精力完成了部分功能,先贴上 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Syst

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

<?php /************************ * 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容 * 创建时间:2008-12-09 * 创建人:张宴(img.jb51.net) * 参数说明: * $ip 服务器的IP地址 * $host 服务器的host名称 * $url 服务器的URL地址(不含域名) * 返回值: * 获取到的远程网页内容 * false 访问远程网页失败 ************************/ function HttpVi

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

所谓GeoIP,就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息.这里面的技术不算难题,关键在于有个精准的数据库.有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡献众人享用是我们追求的. Hostip.info提供了一个平台,可以添加已知的数据信息,可以免费获取数据库.同时,提供了简单易用的API,可以获取特定IP的位置信息,还有国家旗帜.API所返回的数据格式,除了最常见的HTML外,还提供了GML格式的,赞! http://api.hostip.info

C#获取局域网IP、MAC地址和端口的初学

首先非常感谢Melou的http://www.cnblogs.com/luoht/archive/2009/12/18/1627431.html的随笔,对于初学C#的我,参考你的随笔对我的学习真是有莫大帮助. C#遍历局域网的几种方法: 1.微软社区上介绍了使用Active Directory 来遍历局域网 首先我们来了解DirectoryEntry类是一个什么类. 命名空间:  System.DirectoryServices程序集:  System.DirectoryServices(在 S

Java获取网络IP

Java获取获取网络IP,浅尝辄止咯- 1 import java.net.InetAddress; 2 import java.net.UnknownHostException; 3 4 /** 5 * 获取网络IP 6 * 1.获取本地的IP地址 7 * 2.获取本机的服务器名称 8 * 3.获取远程服务器的主机IP地址 9 * 4.获取远程服务器的所有主机IP 10 * 11 * 网络编程: 12 * InetAddress 是用来封装IP地址相关信息的类 13 * getLocalHos