如何判断两个IP地址是否指向同一台机器

Yanbin_Q 2005-12-12 04:00:44
例如本机的IP地址是192.168.0.1
那么通过Java代码如何判断下面两个地址
127.0.0.1
192.168.0.1
是指向同一台机器呢

java代码在本机运行
...全文
638 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaa2003gf 2005-12-13
  • 打赏
  • 举报
回复
SNMP
捏造的信仰 2005-12-13
  • 打赏
  • 举报
回复
问题是如果这台机器是双网卡呢?甚至其中一个IP其实是虚拟机呢?请问楼主这算不算“同一台机器”?
Yanbin_Q 2005-12-13
  • 打赏
  • 举报
回复
但是在机器名未知的情况下如何读出所有的IP地址呢
一个应用部署在多台机器,所以机器名是不固定的

InetAddress.getAllByName("localhost");
只能取到一个IP地址的
skycncomp 2005-12-13
  • 打赏
  • 举报
回复
对了,那个10.0.0.233是我现在的IP地址
skycncomp 2005-12-13
  • 打赏
  • 举报
回复
public void getID() throws Exception {
String s = "10.0.0.233";
InetAddress[] ia = InetAddress.getAllByName("cncomp-dew3qujo");
System.out.println("本机IP = " + InetAddress.getLocalHost());
for (int i = 0; i < ia.length; i++) {
if (s.equals(ia[i].getHostAddress()))
System.out.println(ia[i].getHostAddress() + " 是本机IP");
}
}
Yanbin_Q 2005-12-13
  • 打赏
  • 举报
回复
比如,我就是想要判断192.168.0.1是不是本机的IP怎么做呢,本机机器名能通过什么读取出来?
Yanbin_Q 2005-12-13
  • 打赏
  • 举报
回复
双网卡的IP也算,一个网卡设置了多个IP也算同一台机器

SNMP就扯远了吧,还得依赖于系统的SNMP Agent
还要第三方的SNMP开发包
TinyJimmy 2005-12-12
  • 打赏
  • 举报
回复
如果非127.0.0.1就可以

InetAddress.getByName("192.168.0.1").getHostName(); --tinyjimmy
InetAddress.getByName("192.168.2.1").getHostName(); --tinyjimmy

而127.0.0.1被解析成localhost了

对127.0.0.1特殊处理应该就可以了吧
Yanbin_Q 2005-12-12
  • 打赏
  • 举报
回复
我不能为了这一点点小小的功能去调用win32Api,执行系统命令也不妥,况且linux下还是ifconfig,windows下是ipconfig
Yanbin_Q 2005-12-12
  • 打赏
  • 举报
回复
InetAddress[] add1 = InetAddress.getAllByName("localhost")

中会返回一个元素,是127.0.0.1
superxiaohe 2005-12-12
  • 打赏
  • 举报
回复
zealVampire(白鹤泉) 真牛!
kingofhawks 2005-12-12
  • 打赏
  • 举报
回复
看你们试试结果如何...
zealVampire 2005-12-12
  • 打赏
  • 举报
回复
InetAddress.getAllByName(String host);会返回一个数组InetAddress[]
zealVampire 2005-12-12
  • 打赏
  • 举报
回复
InetAddress.getAllByName(String host);不知道行不。
--------------------------
或者通过
通过查找IP Address内容行不?例如下面有两个

或者自己调用winapi
struct hostent * gethostbyname(const char *name);

hostent 包含一个char **h_addr_list 就是所有的ip

>ipconfig/all

Windows IP Configuration

Host Name . . . . . . . . . . . . : chinese-c3e460f
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Mixed
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : mshome.net

Ethernet adapter 本地连接:

Connection-specific DNS Suffix . : mshome.net
Description . . . . . . . . . . . : Realtek RTL8139 Family PCI Fast Ethe
rnet NIC
Physical Address. . . . . . . . . : 00-40-46-01-62-8C
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.0.57
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
DHCP Server . . . . . . . . . . . : 192.168.0.1
DNS Servers . . . . . . . . . . . : 192.168.0.1
Lease Obtained. . . . . . . . . . : 2005年12月12日 15:26:47
Lease Expires . . . . . . . . . . : 2005年12月19日 15:26:47

PPP adapter Vnet_PPPoE:

Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : WAN (PPP/SLIP) Interface
Physical Address. . . . . . . . . : 00-53-45-00-00-00
Dhcp Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 61.141.226.59
Subnet Mask . . . . . . . . . . . : 255.255.255.255
Default Gateway . . . . . . . . . : 61.141.226.59
DNS Servers . . . . . . . . . . . : 202.96.134.133
202.96.128.166
NetBIOS over Tcpip. . . . . . . . : Disabled
Yanbin_Q 2005-12-12
  • 打赏
  • 举报
回复
或者判断一个InetAddress是否是本地IP也行

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧