`
Luob.
  • 浏览: 1590371 次
  • 来自: 上海
社区版块
存档分类
最新评论

根据IP获取 地址信息

    博客分类:
  • Java
阅读更多
package com.lee;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;

import org.json.JSONException;
import org.json.JSONObject;
/**
 * 根据IP地址获取详细的地域信息
 */
public class IPSeeker {  
 public void getAddresses(String content, String encodingString)
   throws UnsupportedEncodingException {
  //这里调用pconline的接口
  String urlStr = "http://ip.taobao.com/service/getIpInfo.php";
  //从http://whois.pconline.com.cn取得IP所在的省市区信息
  String returnStr = this.getResult(urlStr, content, encodingString);
  if (returnStr != null) {
	 System.out.println(returnStr);
	 JSONObject json=null;
	try {
		json = new JSONObject(returnStr);
		System.out.println(json.optJSONObject("data").getString("country"));
		System.out.println(json.optJSONObject("data").getString("area"));
		System.out.println(json.optJSONObject("data").getString("region"));
		System.out.println(json.optJSONObject("data").getString("city"));
		System.out.println(json.optJSONObject("data").getString("county"));
		System.out.println(json.optJSONObject("data").getString("isp"));
	} catch (JSONException e){
		e.printStackTrace();
	} 
  }
 }
 /**
  * @param urlStr
  *            请求的地址
  * @param content
  *            请求的参数 格式为:name=xxx&pwd=xxx
  * @param encoding
  *            服务器端请求编码。如GBK,UTF-8等
  * @return
  */
 private String getResult(String urlStr, String content, String encoding) {
  URL url = null;
  HttpURLConnection connection = null;
  try {
   url = new URL(urlStr);
   connection = (HttpURLConnection) url.openConnection();// 新建连接实例
   connection.setConnectTimeout(2000);// 设置连接超时时间,单位毫秒
   connection.setReadTimeout(2000);// 设置读取数据超时时间,单位毫秒
   connection.setDoOutput(true);// 是否打开输出流 true|false
   connection.setDoInput(true);// 是否打开输入流true|false
   connection.setRequestMethod("POST");// 提交方法POST|GET
   connection.setUseCaches(false);// 是否缓存true|false
   connection.connect();// 打开连接端口
   DataOutputStream out = new DataOutputStream(connection.getOutputStream());// 打开输出流往对端服务器写数据
   out.writeBytes(content);// 写数据,也就是提交你的表单 name=xxx&pwd=xxx
   out.flush();// 刷新
   out.close();// 关闭输出流
   BufferedReader reader = new BufferedReader(new InputStreamReader(
     connection.getInputStream(), encoding));// 往对端写完数据对端服务器返回数据
   // ,以BufferedReader流来读取
   StringBuffer buffer = new StringBuffer();
   String line = "";
   while ((line = reader.readLine()) != null) {
	   buffer.append(line);
   }
   	reader.close();
   return buffer.toString();
  } catch (IOException e) {
	  e.printStackTrace();
  } finally {
   if(connection != null) {
	   connection.disconnect();// 关闭连接
   }
  }
  return null;
 }
 
 // 测试
 public static void main(String[] args) throws UnsupportedEncodingException {
  IPSeeker seeker = new IPSeeker();
  //测试ip 219.136.134.157 中国=华南=广东省=广州市=越秀区=电信
  String ip = "219.136.134.157";
  try {
	  seeker.getAddresses("ip="+ip, "GBK");
  }catch (UnsupportedEncodingException e) {
    e.printStackTrace();
  }
 }
}  
分享到:
评论

相关推荐

    根据IP地址获取经纬度

    在Java中,获取IP地址信息通常需要使用第三方库,如MaxMind的GeoIP数据库。GeoIPJava-1.2.8可能就是这个项目的某个版本,它提供了与MaxMind数据库交互的接口。MaxMind的GeoLite或GeoIP2数据库包含了全球IP地址与地理...

    根据IP地址获取地理信息 地理信息

    在IT行业中,根据IP地址获取地理信息是一项常用的技术,它主要涉及到网络通信、数据库查询以及数据分析等多个领域。这项技术能够帮助我们了解网络用户的位置信息,从而实现诸如网站个性化推荐、广告定向投放、网络...

    java根据ip获取国家、地区名称,附带ip地址库

    总结来说,Java中根据IP获取国家和地区名称涉及的技术点包括:使用`InetAddress`处理IP地址、理解IP地址库的结构和查询机制、以及选择和使用合适的第三方库或服务进行IP定位。在实际应用中,应确保IP库的及时更新,...

    Thinkphp5根据IP地址获取定位地理位置,精准到城市

    在IT行业中,尤其是在Web开发领域,常常需要根据用户设备的IP地址来获取其大致的地理位置信息,以便提供个性化服务或进行数据分析。ThinkPHP5作为一款流行的PHP框架,提供了丰富的功能来帮助开发者实现这一需求。本...

    java根据ip获取位置

    java根据ip获取位置 根据IP地址获取详细的地域信息 淘宝API 新浪API

    PHP 根据IP地址获取所在城市

    这里定义了`GetIpLookup()`函数,其主要功能是根据传入的IP地址调用新浪提供的接口来获取地理信息。值得注意的是,接口返回的是JavaScript格式的数据,因此需要先通过正则表达式提取出JSON字符串,再进行解码处理。 ...

    java实现根据ip地址获取地理位置的代码分享

    在Java编程中,有时我们需要根据用户的IP地址获取其所在地理位置的信息,这在网站统计、个性化推荐或者安全防护等方面都有重要作用。本篇文章将分享一个利用Java实现根据IP地址获取地理位置的简单示例,主要使用了QQ...

    java实现根据ip地址获取地理位置

    在Java编程中,根据IP地址获取地理位置是一项常见的需求,尤其在大数据分析、用户行为追踪或者安全防护等场景中。...同时,对于用户隐私保护,使用IP获取地理位置时必须遵循相关法律法规,确保数据合规使用。

    ThinkPHP根据获取的ip获取地理位置信息

    总结,通过ThinkPHP获取IP地址和对应的地理位置信息,需要理解HTTP协议中的IP获取机制,以及如何使用第三方服务或数据库进行IP到地理信息的转换。在实际项目中,还需要考虑到隐私保护和合规性,确保在合法范围内使用...

    java根据ip获取国家、地区名称,附带ip库

    java根据ip获取国家、地区名称,附带ip库 java根据ip获取国家、地区名称,附带ip库

    java根据ip反查省市县地址

    在上述代码中,我们首先在静态块中加载了GeoIP数据库,然后通过`getCityByIp`方法获取对应IP的地址信息。 3. 使用`AddressUtils`:在需要查询IP地址的地方调用`getCityByIp`方法即可,例如: ```java public static...

    根据IP获取用户访问地址

    在这个场景下,"根据IP获取用户访问地址"的实现主要依赖于一个叫做"纯真IP数据库"的资源,它包含了大量IP地址与其对应的实际地理位置的映射关系。 纯真IP数据库(ZhiQing IP Database)是中国较为广泛使用的IP地理...

    根据IP地址获取所在地

    标题“根据IP地址获取所在地”涉及的是网络编程中的一种常见需求,即通过IP地址查询其对应的地理位置信息。在互联网上,每个设备都有一个唯一的IP地址,这个地址可以用来标识网络上的设备位置。本项目可能是一个Java...

    C#通过IP地址获取主机名称

    本篇文章将详细讲解如何在C#中通过IP地址获取主机名称,这对于网络通信、服务器管理和故障排查等场景非常实用。 首先,我们需要了解IP地址和主机名称之间的关系。IP地址(Internet Protocol address)是互联网上的...

    pb获取ip地址/mac地址

    网络中根据IP地址获取MAC地址,通常涉及ARP(地址解析协议)。在Windows系统中,可以使用`arp -a`命令来查询本地ARP缓存,查找对应IP的MAC地址。然而,这仅适用于同一局域网内的IP。如果目标IP不在本地网络,可能...

    C# 通过IP或计算机名 获取信息

    本主题聚焦于如何利用C#通过IP地址或计算机名获取相关网络信息,包括IP地址、MAC地址以及进行DNS查询。以下是关于这些知识点的详细说明: 1. **IP地址**: - IP(Internet Protocol)地址是网络上设备的唯一标识,...

    pb中获得本机IP地址\MAC地址信息纯代码方式

    总的来说,这个压缩包提供了一套在PowerBuilder环境中获取网络信息的解决方案,包括IP地址、MAC地址和DNS服务器信息,这在进行网络相关的应用程序开发时非常有用。使用这些源码,开发者可以更好地集成网络功能,实现...

    IpUtil工具类--通过request获取IP,通过IP获取地址

    IpUtil工具类--通过request获取IP,通过IP获取地址(需要联网,调用淘宝的IP库)。使用场景:在网站开发记录用户增删改查日志的时候,往往需要记录操作人的IP地址,来准确的生成操作日志记录等

    JS获取ip地址归属地

    在网络开发中,获取用户的 IP 地址归属地是非常有用的功能,例如在电商平台中可以根据用户的 IP 地址归属地进行物流信息的显示和管理。在这篇文章中,我们将使用 JS 调用第三方 API 获取 IP 归属地,简单方便实用。 ...

    根据IP地址获取ip所在区域.rar

    本文将详细讨论如何根据IP地址获取其所在的区域、运营商以及国家等信息,特别是在Java环境中利用淘宝IP地址库进行此类操作。 首先,IP地址是互联网上设备的唯一标识,它分为IPv4和IPv6两种格式。在IPv4中,IP地址由...

Global site tag (gtag.js) - Google Analytics