获取本机的IP地址

[size=medium]1. 遍历[color=red]网络接口[/color]来获取IP地址:[/size]


Enumeration<NetworkInterface> itfList = NetworkInterface.getNetworkInterfaces();
if (itfList == null) {
System.out.println("--No interfaces found--");
} else {
while (itfList.hasMoreElements()) {
NetworkInterface itf = itfList.nextElement();
String displayName = itf.getDisplayName();
String name = itf.getName();
if (name.indexOf("eth") < 0 && displayName.indexOf("Wireless") < 0) { // 只获取以太网卡或者无线网卡的IP,根据需要配置。
continue;
}
System.out.println("Interface " + itf.getName() + ":");
Enumeration<InetAddress> addrList = itf.getInetAddresses();
if (!addrList.hasMoreElements()) {
System.out.println("\t(No addresses for this interface)");
}
while (addrList.hasMoreElements()) {
InetAddress addr = addrList.nextElement();
System.out.print("\tAddress "
+ (addr instanceof Inet4Address ? "(v4)" : (addr instanceof Inet6Address ? "(v6)"
: "(?)")));
System.out.println(": " + addr.getHostAddress());
}
}
}


[size=medium]2. 通过[color=red]主机名[/color]来获取IP地址:[/size]


public static void getIPByHostName(String host) {
System.out.println(host + ":");
InetAddress[] addrList = InetAddress.getAllByName(host);
for (InetAddress addr : addrList) {
System.out.println("\t" + addr.getHostName() + "/" + addr.getHostAddress());
}
}


[size=medium]3. 通过[color=red]InetAddress[/color]来获取本机IP地址:[/size]


InetAddress address = InetAddress.getLocalHost();
System.out.println(address);


如果本机有多个网络:如以太网,无线网卡或虚拟机等,通过上面两种方式获取的可能不是需要的IP地址。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值