根据访问的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;
}
}
分享到:
相关推荐
本篇文章将详细解释如何在Java环境下,通过Servlet和Reactive编程模型来获取HTTP请求中的IP地址。 首先,让我们从Servlet API开始。Servlet是Java用于构建动态Web应用程序的标准接口。在Servlet中,我们通常使用`...
在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...
IP地址是网络层的逻辑地址,而MAC地址是数据链路层的物理地址。在局域网内,数据传输通常涉及将IP地址解析为MAC地址,这个过程称为ARP(地址解析协议)。 该源代码的主要目标是实现以下功能: 1. **局域网扫描**:...
本话题主要探讨如何使用Java实现输入IP地址并查询其对应的地理位置,这里我们借助了“QQ纯真”数据库。以下是对这个主题的详细阐述: 首先,我们需要理解IP地址与地理位置之间的关系。IP地址是互联网上设备的唯一...
java 写的对qqwry.dat 文件的查询操作,需要就拿走,里面有源代码的
获取计算机的mac地址和ip地址,mac地址返回的是一个list,ip地址是string
IP地址是网络层的逻辑地址,而MAC地址是数据链路层的物理地址。本文将深入探讨如何使用Java编程语言来获取这两种地址。 首先,我们要了解IP地址。在Java中,我们可以使用`java.net`包中的`InetAddress`类来获取本地...
首先寻找并打开适合的网络适配器,然后根据输入的局域网 IP 地址构造 ARP 的数据包,然后通过 Java 对网卡数据捕获需要用到 jpcap,jpcap 调用 wincap 实现数据包的发送,并监听返回的...IP 地址和物理地址并打印。
通过IP寻找物理地址。Java写的demo源代码,基于纯真数据文件。全套代码和.dat文件都已经放在工程里了,导入后可以直接使用。 收集了包括中国电信、中国网通、长城宽带、网通宽带、聚友宽带等 ISP 的最新准确 IP 地址...
- MAC地址通常无法直接通过网络请求获取,因为它是网络层的物理地址,不参与IP层的通信。但是,可以通过操作系统提供的命令行工具间接获取。例如,Windows系统中的`nbtstat -A`命令可以用来查询远程主机的MAC地址。...
这个DLL可能封装了Windows API函数,如`GetAdaptersInfo`或`GetAdaptersAddresses`,调用这些函数可以获取到网络适配器的物理地址,即MAC地址。另一种方法是通过Winsock控件发送ARP请求,但这种方式较为复杂。 3. *...
本文将深入探讨如何使用Java Servlet结合ARP协议来获取局域网内的活动主机物理地址,并结合前台样式实现这一功能。我们将涵盖ARP协议的基本原理、Java Servlet的使用以及如何与前端交互。 首先,ARP协议是TCP/IP...
3. **获取MAC地址**:在Java中,直接获取MAC(物理)地址相对复杂,因为这涉及到操作系统级别的硬件信息。通常,可以通过`java.net.NetworkInterface`类来获取。首先,通过`NetworkInterface.getNetworkInterfaces()...
Simple Network Management Protocol (SNMP) 是一种用于网络管理的标准协议,它允许远程查询网络设备的信息,包括IP和MAC地址。在Python中,可以使用pysnmp库进行SNMP操作。 6. **AdaptersInfo获取信息**: 在...
MAC地址,即物理地址,用于标识网络接口控制器(NIC),通常为6个双字节的十六进制数。 在Java中获取本机IP地址,我们可以使用`java.net.NetworkInterface`和`java.net.InetAddress`这两个类。以下是一段获取本机IP...
GeoLite2-City_20200324(IP物理地址数据库).tar.gz 是一个包含GeoLite2-City离线库的压缩文件,用于实现IP到现实地理位置的转换。这个数据库是MaxMind公司提供的一个资源,它允许开发者在没有互联网连接的情况下查询...
if (line.contains("物理地址")) { // 在中文环境下,物理地址可能被翻译为"物理地址" // 使用正则表达式提取MAC地址 // 例如:Mac Address: 00-11-22-33-44-55 // 正则表达式:Mac Address:\\s*(\\w+-\\w+-\\w+...
通过下载GeoLite数据库文件,将其加载到内存中,然后使用Java代码查询特定IP地址对应的地理位置信息。MaxMind的API提供了高效的数据结构和查询方法,使得查找过程快速且便捷。 在代码实现上,我们需要创建一个IP...
例如,使用ActiveX对象或Java Applet等方式可以在特定条件下获取到MAC地址。但是这些方法存在严重的安全问题,并且不被现代浏览器所支持。 在提供的部分代码中,使用了ActiveX对象来尝试获取MAC地址: ```html //...
对于获取交换机下的PC信息,我们需要知道特定OID,例如,"1.3.6.1.2.1.4.22.1.2" 可以用于获取接口的物理地址(即MAC地址)。 以下是一个基本的Java代码示例,展示了如何使用Snmp4j来获取交换机的MAC地址: ```...