Windows查看本机ip地址:
- 按
Window
+R
打开,输入cmd
打开cmd命令窗口。 - 输入
ipconfig
后按回车。
在程序中使用java获取本机ip地址代码如下:
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
public final class IPUtil {
private IPUtil() {}
/**
* 取到当前机器的IP地址
* @return
*/
public static String getIp() {
String hostIp;
List<String> ips = new ArrayList<>();
Enumeration<NetworkInterface> netInterfaces;
try {
//返回此机器上的所有接口。
netInterfaces = NetworkInterface.getNetworkInterfaces();
//测试此枚举是否包含更多的元素。
while (netInterfaces.hasMoreElements()) {
//返回此枚举的下一个元素。
NetworkInterface netInterface = netInterfaces.nextElement();
//返回一个具有绑定到此网络接口全部或部分 InetAddress 的 Enumeration。
Enumeration<InetAddress> inetAddresses = netInterface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
//非本地环回接口 && IPV4
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
//返回 IP 地址字符串(以文本表现形式)。
ips.add(inetAddress.getHostAddress());
}
}
}
} catch (SocketException ex) {
ex.printStackTrace();
}
hostIp = collectionToDelimitedString(ips, ",");
return hostIp;
}
private static String collectionToDelimitedString(Collection<String> coll, String delim) {
if (coll == null || coll.isEmpty()) {
return "";
}
StringBuilder sb = new StringBuilder();
Iterator<?> it = coll.iterator();
while (it.hasNext()) {
sb.append(it.next());
if (it.hasNext()) {
sb.append(delim);
}
}
return sb.toString();
}
/**
* 获取主机名称
* @return
*/
public static String getHostName() {
String hostName = null;
try {
hostName = InetAddress.getLocalHost().getHostName();
} catch (Exception e) {
e.printStackTrace();
}
return hostName;
}
public static void main(String[] args) {
System.out.println(IPUtil.getIp());
System.out.println(IPUtil.getHostName());
}
}
测试结果:
192.168.1.107
DESKTOP-OM1F3ML