java IP查询方法

老师给我们布置的作业如图用eclipse来做跪求帮助啊明天要交的摆脱各位大大了help... 老师给我们 布置的作业
如图 用eclipse 来做 跪求帮助啊
明天要交 的 摆脱各位大大了
help
展开
 我来答
曹晓山11
推荐于2018-04-13 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52066
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

Java编程查询IP地址归属地,可以调用淘宝提供的service查询,并且解析http请求返回的json串,代码如下:

package getAddressByIp;
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 net.sf.json.JSONObject;
 
public class GetAddressByIp
{        
    /**
     * 
     * @param IP
     * @return
     */
    public static String GetAddressByIp(String IP){
        String resout = "";
        try{
         String str = getJsonContent("http://ip.taobao.com/service/getIpInfo.php?ip="+IP);
         System.out.println(str);
         JSONObject obj = JSONObject.fromObject(str);
         JSONObject obj2 =  (JSONObject) obj.get("data");
         String code = (String) obj.get("code");
         if(code.equals("0")){
             resout =  obj2.get("country")+"--" +obj2.get("area")+"--" +obj2.get("city")+"--" +obj2.get("isp");
         }else{
             resout =  "IP地址有误";
         }
        }catch(Exception e){
             
            e.printStackTrace();
             resout = "获取IP地址异常:"+e.getMessage();
        }
        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;
    }
}
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
samland
推荐于2016-04-02 · TA获得超过162个赞
知道答主
回答量:40
采纳率:0%
帮助的人:18.6万
展开全部
public class NetTools {

public static String getLocalHostIP(){
String ip;
try{
InetAddress addr = InetAddress.getLocalHost();
ip = addr.getHostAddress();
}
catch(Exception ex){
ip = "";
}
return ip;
}

public static String getLocalHostName(){
String hostName;
try{
InetAddress addr = InetAddress.getLocalHost();
hostName = addr.getHostName();
}
catch(Exception ex){
hostName = "";
}
return hostName;
}

public static String[] getAllLocalHostIP(){
String[] ret = null;
try{
String hostName = getLocalHostName();
if(hostName.length()>0){
InetAddress[] addrs = InetAddress.getAllByName(hostName);
if(addrs.length>0){
ret = new String[addrs.length];
for(int i=0 ; i< addrs.length ; i++){
ret[i] = addrs[i].getHostAddress();
}
}
}

}
catch(Exception ex){
ret = null;
}
return ret;
}

public static String[] getAllHostIPByName(String hostName){
String[] ret = null;
try{
if(hostName.length()>0){
InetAddress[] addrs = InetAddress.getAllByName(hostName);
if(addrs.length>0){
ret = new String[addrs.length];
for(int i=0 ; i< addrs.length ; i++){
ret[i] = addrs[i].getHostAddress();
}
}
}

}
catch(Exception ex){
ret = null;
}
return ret;
}

public static void main(String[] args) {
//System.out.println(getLocalHostIP());
System.out.println("主机名:" + getLocalHostName());

String[] localIP = getAllLocalHostIP();
for(int i=0 ; i<localIP.length ; i++){
System.out.println( localIP[i]);
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a7683
2012-03-18 · TA获得超过1034个赞
知道小有建树答主
回答量:969
采纳率:50%
帮助的人:816万
展开全部
调用request对象的getRemoteAddr方法可以获得客户请求中的ip地址。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kyle科普探索
2012-03-18 · 超过30用户采纳过TA的回答
知道答主
回答量:160
采纳率:0%
帮助的人:34万
展开全部
如图? 图呢?
追问
图不会上  不过重新写了文字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式