本文共 2548 字,大约阅读时间需要 8 分钟。
都是网上搜集的,具体出处不详
获取所有IP 在WIN下可行
Enumeration<NetworkInterface> netInterfaces = null;
try {
netInterfaces = NetworkInterface.getNetworkInterfaces();
while (netInterfaces.hasMoreElements()) {
NetworkInterface ni = netInterfaces.nextElement();
System.out.println("DisplayName:" + ni.getDisplayName());
System.out.println("Name:" + ni.getName());
Enumeration<InetAddress> ips = ni.getInetAddresses();
while (ips.hasMoreElements()) {
System.out.println("IP:"
+ ips.nextElement().getHostAddress());
}
}
} catch (Exception e) {
e.printStackTrace();
}
获取本机IP代码一 此代码在LIUNX下可能会只能取到127.0.0.1 未在LINUX下试过,在WIN下可行
public String getLocalIP(){
InetAddress addr = null;
try {
addr = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
return null;
}
byte[] ipAddr = addr.getAddress();
String ipAddrStr = "";
for (int i = 0; i < ipAddr.length; i++) {
if (i > 0) {
ipAddrStr += ".";
}
ipAddrStr += ipAddr[i] & 0xFF;
}
//System.out.println(ipAddrStr);
return ipAddrStr;
}
获取本机IP代码 此代码善未试过, 此处所见
开始我在Linux下用InetAddress.getLocalHost()方法获取本机IP地址,
得到的结果总是:127.0.1.1。
原来这个是etc/hosts文件中的配置,并非网卡的IP地址。
后来多方寻访,终于得下以下代码,
运行后在控制台输出IP与MAC地址。
import java.net.*;
import java.util.*;
public class getIP {
public static void main(String[] args) {
getIP t = new getIP();
System.out.println(t.getLocalIP());
System.out.println(t.getMacAddr());
}
public String getMacAddr() {
String MacAddr = "";
String str = "";
try {
NetworkInterface NIC = NetworkInterface.getByName("eth0");
byte[] buf = NIC.getHardwareAddress();
for (int i = 0; i < buf.length; i++) {
str = str + byteHEX(buf[i]);
}
MacAddr = str.toUpperCase();
} catch (SocketException e) {
e.printStackTrace();
System.exit(-1);
}
return MacAddr;
}
public String getLocalIP() {
String ip = "";
try {
Enumeration<?> e1 = (Enumeration<?>) NetworkInterface.getNetworkInterfaces();
while (e1.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) e1.nextElement();
if (!ni.getName().equals("eth0")) {
continue;
} else {
Enumeration<?> e2 = ni.getInetAddresses();
while (e2.hasMoreElements()) {
InetAddress ia = (InetAddress) e2.nextElement();
if (ia instanceof Inet6Address)
continue;
ip = ia.getHostAddress();
}
break;
}
}
} catch (SocketException e) {
e.printStackTrace();
System.exit(-1);
}
return ip;
}
/* 一个将字节转化为十六进制ASSIC码的函数 */
public static String byteHEX(byte ib) {
char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a','b', 'c', 'd', 'e', 'f' };
char[] ob = new char[2];
ob[0] = Digit[(ib >>> 4) & 0X0F];
ob[1] = Digit[ib & 0X0F];
String s = new String(ob);
return s;
}
} 转载地址:http://vcjob.baihongyu.com/