`
jakty
  • 浏览: 4759 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

通过IP地址获取此IP所在省市区信息

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

public class AddressUtils {

	/**
	 * 
	 * @param content
	 *            请求的参数 格式为:name=xxx&pwd=xxx
	 * @param encoding
	 *            服务器端请求编码。如GBK,UTF-8等
	 * @return
	 */
	public String getAddresses(String content, String encodingString) {
		// 这里调用pconline的接口
		String urlStr = "http://whois.pconline.sscom.cn/ipJson.jsp";
		// 从http://whois.pconline.com.cn取得IP所在的省市区信息
		String returnStr = this.getResult(urlStr, content, encodingString);
		if (returnStr != null) {
			// 处理返回的省市区信息
			int startIndex = returnStr.indexOf("\"pro");
			int endIndex = returnStr.indexOf(",\"addr");
			if (startIndex > 0 && endIndex > 0 && endIndex > startIndex) {
				returnStr = returnStr.substring(startIndex, endIndex);
				returnStr = returnStr.replaceAll("\"", "").replace("pro:", "")
						.replace("city:", "").replace("region:", "");
			}
		}
		return returnStr;
	}

	/**
	 * @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) {
		AddressUtils addressUtils = new AddressUtils();
		// 测试ip
		String ip = "219.136.134.157";
		String address = addressUtils.getAddresses("ip=" + ip, "gbk");
		System.out.println(address);
		// 输出结果为:广东省,广州市,越秀区
	}
}

 

分享到:
评论

相关推荐

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

    本篇文章将深入探讨如何在ThinkPHP5中利用IP地址获取定位至城市的地理信息。 首先,我们要明白IP地址与地理位置的关系。Internet上的每个设备都有一个唯一的IP地址,这些地址按照一定的规则被分配给各个网络和主机...

    根据Ip获取省份城市

    在互联网应用开发中,经常需要通过用户的IP地址来确定其地理位置信息,比如所在省份和城市等。这对于广告定位、用户行为分析、内容推荐等方面有着重要的作用。本文将详细介绍如何使用C#语言在.NET框架下实现这一功能...

    【PHP】根据IP地址查询省市(纯真数据库最新版)

    3. **区间查找**:由于IP地址是连续的,我们可以使用二分查找法来快速定位IP地址所在的省市区信息。先将数据库数据按IP地址升序排序,然后在查找时不断缩小范围,直到找到匹配的IP地址区间。 4. **数据封装**:为了...

    PHP获取IP地址 包含国家省份城市

    在PHP编程中,获取用户设备的IP地址是...总的来说,通过学习和使用这个实例,你可以掌握如何在PHP中获取用户的IP地址,以及如何利用外部API获取基于IP的地理位置信息,这对于网站统计、个性化推荐等功能具有重要意义。

    PHP 根据IP地址获取所在城市代码以及纯真ip库qqwry.dat下载

    在这个场景中,我们关注的是如何利用PHP根据IP地址获取用户所在的城市代码,这在诸如网站访问统计、地理位置定位等服务中非常常见。这个过程涉及到TCP/IP协议、网络编程和数据库查询等知识。 首先,TCP/IP协议是...

    Gis根据坐标获取省市区

    在本场景中,我们关注的是如何根据经纬度坐标来获取对应的省市区信息。这涉及到地理编码(Geocoding)的过程,即通过经纬度坐标反向查找其对应的行政区域信息。 首先,我们需要理解经纬度坐标。地球被划分为经度和...

    php通过ip免申请api获取所在城市的代码包括省市区sql数据

    标题中的“php通过ip免申请api获取所在城市的代码”指的是使用PHP编程语言,不通过申请特定API密钥,而是利用公开或免费的IP查询服务来获取访客IP地址所在的地理位置,特别是城市信息。这种技术在网站统计、用户定位...

    jQuery+Ajax获取当前IP地址和省市地区位置代码

    这是一款非常简单实用的jQuery+Ajax获取当前IP地址和省市地区位置代码,调用ajax函数获取IP地址和所在省份城市。

    php实现根据IP地址获取其所在省市的方法

    根据现有IP地址获取其地理位置(省份,城市等)的方法 function GetIpLookup($ip = ''){ if(empty($ip)){ return '请输入IP地址'; } $res = @file_get_contents('...

    php获取用户所在的城市

    // 根据IP地址获取城市 function ipCity($userip) { // IP数据库路径 $dat_path = 'QQWry.dat'; // 检查IP地址格式是否有效 if (!preg_match("/^([0-9]{1,3}\.){3}[0-9]{1,3}$/", $userip)) { return '...

    java ip,身份证等接口查询所在地

    这段代码会加载GeoLite2数据库,并根据给定的IP地址获取对应的国家和城市信息。 接下来是身份证(ID Card)查询。在中国,身份证号码包含了持卡人的出生日期、性别以及籍贯信息。虽然我们不能直接通过身份证号码...

    THinkPHP获取客户端IP与IP地址查询的方法

    本文实例讲述了THinkPHP获取客户端IP与IP地址查询的方法。分享给大家供大家参考,具体如下: TP 中获取客户端IP地址的系统公共函数是:function get_client_ip()。返回值就是IP地址。 查询IP地址所在国家与地区的类...

    用java实现输入ip得到地址 成功

    使用这个数据库,我们可以快速地根据输入的IP地址获取到相对应的省市区等信息。 在Java中,实现这一功能需要以下几个步骤: 1. **数据准备**:首先,你需要下载最新的“QQ纯真”IP数据库文件,通常是一个CSV或者...

    ASP.NET-[其他类别]Asp.net根据IP显示省市拼音.zip

    在ASP.NET开发中,有时我们需要根据用户的IP地址获取其所在的省份和城市信息,这在诸如统计用户分布、个性化推荐或者安全验证等场景中非常常见。本压缩包"ASP.NET-[其他类别]Asp.net根据IP显示省市拼音.zip"提供了一...

    IP转城市区数据库(含ASP完整代码) 5.0.1

    3. **IP转省市区**:除了城市级别,该系统还支持查询到更细致的省市区信息。这使得开发者能够更加精确地了解到用户所在的行政区域,对于提供地方性服务或实施地域性营销策略具有重要意义。 4. **IP转拼音**:一个...

    PHP中根据IP地址判断城市实现城市切换或跳转代码

    总结起来,通过PHP实现根据IP地址判断用户所在城市并进行城市切换或跳转的基本步骤包括:获取用户IP地址、使用IP地址库文件解析用户所在IP段、获取对应的城市信息,以及根据城市信息执行相应的业务逻辑。需要注意的...

    城市IP数据库、QQ纯真IP数据库提取器及其C#提取器项目源文件

    1. **网络定位**:根据用户的IP地址,实时显示其所在的城市,提升用户体验。 2. **广告定向**:结合用户位置信息,推送与地域相关的广告,提高广告效果。 3. **内容过滤**:根据IP地址判断访问者的来源,实施特定的...

    省市区三级联动

    在IT行业中,"省市区三级联动"是一种常见的前端交互设计,尤其在地址选择、物流配送、定位服务等场景中广泛运用。它指的是在一个下拉菜单中,用户...而获取IP所在省份的API则为这一过程提供了便捷,让服务更加智能化。

    自己整理的javascript/js可用的IP地址与省市编码库,可用json格式解析,只有几百k,在不能访问数据库的情况下使用

    在IT行业中,尤其是在Web开发领域,常常需要处理与地理位置相关的数据,例如用户的IP地址和所在省市信息。这个压缩包提供了一个特别适用于JavaScript环境的IP地址与省市编码库,它以JSON格式存储数据,体积小巧,...

    ip2region-2.2.0-release.zip

    例如,在Java中,我们可以创建`BinarySearcher`对象,然后调用`search`方法输入IP地址,返回的结果会包含IP所在的省市区信息。 4. **离线特性** IP2Region的一大优点是离线查询,这意味着无需连接互联网就可以进行...

Global site tag (gtag.js) - Google Analytics