`

java查询IP物理地址

阅读更多

根据访问的IP得到具体的IP物理地址,在这里要采用HttpURLConnection向http://www.ip.cn发送请求,之后由该网站做具体的IP分析,将结果以字符串的形式返回给我们,代码如下:

public class Ipservice {
    //连接对象
    /** 
     * 根据url连接某地址,并返回返回码.
     * 返回码说明:
     *     0~200为正常情况,其中200为OK
     * @param urlStr 需连接的url字符串
     */
    public  void connect(HttpURLConnection conn) throws Exception {
 	   conn.setDoOutput(true);
       conn.setDoInput(true);
	   conn.setRequestMethod("POST");   
    }
    /**
     * 发送ip
     * @param ip地址
     */
    private  void send(String ip,HttpURLConnection conn) throws Exception {   	
      OutputStreamWriter sw=new OutputStreamWriter(new BufferedOutputStream(conn.getOutputStream()));
      sw.write(ip);      
      sw.flush();
      sw.close();
   }
   
    /** 
     * 读取网页的内容.
     * @return 返回ip所在地
     */
    private  String readContents(HttpURLConnection conn) throws Exception {
    	String ip_addr="";
    	int row=0;
        BufferedReader in = null;
        
        in = new BufferedReader(new InputStreamReader(conn
                .getInputStream(),"gb2312"));
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
        	row++;
        //	if(row==3 || row==4)
        		//ip_addr+=inputLine.replace("<string>", "").replace("</string>","")+",";
        		ip_addr+=inputLine;
        		ip_addr=ip_addr.substring(ip_addr.indexOf("来自:")+3);
        } 
        return ip_addr;
    }

    /**
     * 中断连接.
     */
    private  void disconnect(HttpURLConnection conn) {
        conn.disconnect();
    }
    
    public String getIp(String ip){	
    	 String ip_addr="";
    	 HttpURLConnection conn = null;
    	 try{
	    	// connect("http://www.ip138.com/ips.asp?");
    		 URL url = new URL("http://www.ip.cn/getip.php?action=queryip&ip_url="+ip);
    		 conn = (HttpURLConnection) url.openConnection();
    		 connect(conn);
	         send("",conn);
	         ip_addr=readContents(conn);
    	 }catch(Exception e){
    		 ip_addr="webservice调用出现问题";
    		 e.printStackTrace();
    	}finally{
    		if(conn!=null)
    			disconnect(conn);
    	}
         return ip_addr;
    }
          
}

 

分享到:
评论
1 楼 lufengdie 2010-08-02  
借用下,嘿嘿··

相关推荐

    IP工具类,通过传入的request获取ip地址(JAVA)

    本篇文章将详细解释如何在Java环境下,通过Servlet和Reactive编程模型来获取HTTP请求中的IP地址。 首先,让我们从Servlet API开始。Servlet是Java用于构建动态Web应用程序的标准接口。在Servlet中,我们通常使用`...

    java编程实现获取服务器IP地址及MAC地址的方法

    在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...

    java通过ip获取mac地址源代码.rar

    IP地址是网络层的逻辑地址,而MAC地址是数据链路层的物理地址。在局域网内,数据传输通常涉及将IP地址解析为MAC地址,这个过程称为ARP(地址解析协议)。 该源代码的主要目标是实现以下功能: 1. **局域网扫描**:...

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

    本话题主要探讨如何使用Java实现输入IP地址并查询其对应的地理位置,这里我们借助了“QQ纯真”数据库。以下是对这个主题的详细阐述: 首先,我们需要理解IP地址与地理位置之间的关系。IP地址是互联网上设备的唯一...

    IP地址物理位置查询

    java 写的对qqwry.dat 文件的查询操作,需要就拿走,里面有源代码的

    java获取MAC物理地址和ip地址

    获取计算机的mac地址和ip地址,mac地址返回的是一个list,ip地址是string

    get_mac_address_using_java.rar_获取IP地址_获取mac地址

    IP地址是网络层的逻辑地址,而MAC地址是数据链路层的物理地址。本文将深入探讨如何使用Java编程语言来获取这两种地址。 首先,我们要了解IP地址。在Java中,我们可以使用`java.net`包中的`InetAddress`类来获取本地...

    基于 Java 使用 ARP 协议获取局域网内部活动主机的物理地址【100011074】

    首先寻找并打开适合的网络适配器,然后根据输入的局域网 IP 地址构造 ARP 的数据包,然后通过 Java 对网卡数据捕获需要用到 jpcap,jpcap 调用 wincap 实现数据包的发送,并监听返回的...IP 地址和物理地址并打印。

    IP寻物理地址-纯真数据库

    通过IP寻找物理地址。Java写的demo源代码,基于纯真数据文件。全套代码和.dat文件都已经放在工程里了,导入后可以直接使用。 收集了包括中国电信、中国网通、长城宽带、网通宽带、聚友宽带等 ISP 的最新准确 IP 地址...

    java获取IP地址

    - MAC地址通常无法直接通过网络请求获取,因为它是网络层的物理地址,不参与IP层的通信。但是,可以通过操作系统提供的命令行工具间接获取。例如,Windows系统中的`nbtstat -A`命令可以用来查询远程主机的MAC地址。...

    pb获取ip地址/mac地址

    这个DLL可能封装了Windows API函数,如`GetAdaptersInfo`或`GetAdaptersAddresses`,调用这些函数可以获取到网络适配器的物理地址,即MAC地址。另一种方法是通过Winsock控件发送ARP请求,但这种方式较为复杂。 3. *...

    Servlet实现前台样式的使用ARP协议获取局域网内活动主机物理地址

    本文将深入探讨如何使用Java Servlet结合ARP协议来获取局域网内的活动主机物理地址,并结合前台样式实现这一功能。我们将涵盖ARP协议的基本原理、Java Servlet的使用以及如何与前端交互。 首先,ARP协议是TCP/IP...

    Java 自动获取本机IP、MAC地址

    3. **获取MAC地址**:在Java中,直接获取MAC(物理)地址相对复杂,因为这涉及到操作系统级别的硬件信息。通常,可以通过`java.net.NetworkInterface`类来获取。首先,通过`NetworkInterface.getNetworkInterfaces()...

    跨平台 获取本机IP/MAC地址,检测是否内网IP,字符串IP转换成Number地址

    Simple Network Management Protocol (SNMP) 是一种用于网络管理的标准协议,它允许远程查询网络设备的信息,包括IP和MAC地址。在Python中,可以使用pysnmp库进行SNMP操作。 6. **AdaptersInfo获取信息**: 在...

    java拿取本机正在使用的ip及本机mac地址

    MAC地址,即物理地址,用于标识网络接口控制器(NIC),通常为6个双字节的十六进制数。 在Java中获取本机IP地址,我们可以使用`java.net.NetworkInterface`和`java.net.InetAddress`这两个类。以下是一段获取本机IP...

    GeoLite2-City_20200324(IP物理地址数据库).tar.gz

    GeoLite2-City_20200324(IP物理地址数据库).tar.gz 是一个包含GeoLite2-City离线库的压缩文件,用于实现IP到现实地理位置的转换。这个数据库是MaxMind公司提供的一个资源,它允许开发者在没有互联网连接的情况下查询...

    java获取网卡地址

    if (line.contains("物理地址")) { // 在中文环境下,物理地址可能被翻译为"物理地址" // 使用正则表达式提取MAC地址 // 例如:Mac Address: 00-11-22-33-44-55 // 正则表达式:Mac Address:\\s*(\\w+-\\w+-\\w+...

    基于Java的源码-IP定位器.zip

    通过下载GeoLite数据库文件,将其加载到内存中,然后使用Java代码查询特定IP地址对应的地理位置信息。MaxMind的API提供了高效的数据结构和查询方法,使得查找过程快速且便捷。 在代码实现上,我们需要创建一个IP...

    js获取客户端的IP mac地址

    例如,使用ActiveX对象或Java Applet等方式可以在特定条件下获取到MAC地址。但是这些方法存在严重的安全问题,并且不被现代浏览器所支持。 在提供的部分代码中,使用了ActiveX对象来尝试获取MAC地址: ```html //...

    java通过SNMP协议获取交换机设备信息(如:交换机下的PC机MAC、IP、连接端口号等信息)

    对于获取交换机下的PC信息,我们需要知道特定OID,例如,"1.3.6.1.2.1.4.22.1.2" 可以用于获取接口的物理地址(即MAC地址)。 以下是一个基本的Java代码示例,展示了如何使用Snmp4j来获取交换机的MAC地址: ```...

Global site tag (gtag.js) - Google Analytics