根据ip获取对应地区

注意:此方法引用淘宝网提供的接口。

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import javax.servlet.http.HttpServletRequest;

import net.sf.json.JSONObject;

/**

* IP工具类

* @author Fanpf

*

*/

public class IpUtil

{

/**

* 获取ip对应的区域

* 返回结果:中国 华东 南昌市

* 使用淘宝网所提供接口

* @param IP

* @return

*/

public static String GetAddressByIp(String IP){

String resout = "";

try{

String str = getJsonContent("http://ip.taobao.com/service/getIpInfo.php?ip="+IP);

JSONObject obj = JSONObject.fromObject(str);

JSONObject obj2 =  (JSONObject) obj.get("data");

Object code = obj.get("code");

if(String.valueOf(code).equals("0")){

resout =  obj2.get("country")+" " +obj2.get("area")+" " +obj2.get("city");

}else{

resout =  "未知IP";

}

}catch(Exception e){

e.printStackTrace();

resout = "获取IP地址异常";

}

return resout;

}

public static String getJsonContent(String urlStr)

{

try

{// 获取HttpURLConnection连接对象

URL url = new URL(urlStr);

HttpURLConnection httpConn = (HttpURLConnection) url

.openConnection();

// 设置连接属性

httpConn.setConnectTimeout(3000);

httpConn.setDoInput(true);

httpConn.setRequestMethod("GET");

// 获取相应码

int respCode = httpConn.getResponseCode();

if (respCode == 200)

{

return ConvertStream2Json(httpConn.getInputStream());

}

}

catch (MalformedURLException e)

{

e.printStackTrace();

}

catch (IOException e)

{

e.printStackTrace();

}

return "";

}

private static String ConvertStream2Json(InputStream inputStream)

{

String jsonStr = "";

// ByteArrayOutputStream相当于内存输出流

ByteArrayOutputStream out = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = 0;

// 将输入流转移到内存输出流中

try

{

while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)

{

out.write(buffer, 0, len);

}

// 将内存流转换为字符串

jsonStr = new String(out.toByteArray());

}

catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return jsonStr;

}

public static void main(String[] args) {

System.out.println(GetAddressByIp("218.64.55.225"));

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-29 10:46:12

根据ip获取对应地区的相关文章

C# .net 如何根据访问者IP获取所在地区

第一步:在根目录添加新项(类),新建一个类文件,把以下文件粘贴到该类文件下: using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO; using System.Diagnostics; public class RedirectMode { public static readonly int Mode_1 = 1; public static re

读取全球ip获取用户地区

这个 首先说明下.ip库是qq纯真ip库 dat文件类型 public static string QQipPath = AppDomain.CurrentDomain.BaseDirectory + "\\ipdata\\qqwry.dat";///QQ纯真ip库地址 public static string GetCity(string IP) { string ipfilePath = QQipPath; IPSearch ipSearch = new IPSearch(ipfi

php获取用户 地区 、ip地址

header("Content-type: text/html; charset=utf-8"); function getCity($ip = '')//获取地区 { if($ip == ''){ $url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json";//新浪借口获取访问者地区 $ip=json_decode(file_get_contents($url),true); $d

通过ip获取qq的天气json数据

需求:根据IP获取当地天气 参考:http://news.qq.com/    其页面中有获取天气的实现. 具体实现:1.查看上面网页,找出其相关代码(我使用的是chrom浏览器,F12调出调试模式) 2.解释主要代码: (1)<script src="http://fw.qq.com:80/ipaddress"></script> :加载这个js,返回的信息:var IPData = new Array("60.29.153.39",&qu

php 通过ip获取所在城市地址信息 获取计算机外网ip

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

IOS-根据ip获取当前城市的编号

IOS 通过ip地址获取当前城市的编号 //解析网址通过ip 获取城市天气代码    NSURL *url = [NSURL URLWithString:@"http://61.4.185.48:81/g/"];        //    定义一个NSError对象,用于捕获错误信息    NSError *error;    NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8Stri

百度接口通过ip获取用户所在地

/** * 百度接口 * 通过用户ip获取用户所在地 * @param userIp * @return */ public static String getAddressByBD2(String strIP) { try { URL url = new URL("http://opendata.baidu.com/api.php?query=" + strIP+"&co=&resource_id=6006&t=1433920989928&i

C# 根据IP获取省市

/// <summary> /// 根据IP获取省市 /// </summary> public void GetAddressByIp() { string ip = "115.193.217.249"; string PostUrl = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=" + ip; string res = GetDataByPost(PostUrl);//该

通过IP获取相应所在地的地址

曾几何时通过IP获取相应所在地的地址一直是一个梦想,曾经为止努力过,但效果并不是很好,现在将努力的成果(某些来源于网络)粘贴出来,希望对某些人有所启发,倘若有人有新的见解,还望不惜赐教: 1.借助外网实现获取IP相应所在地地址的目的: import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URL