67,541
社区成员
发帖
与我相关
我的任务
分享
//这个是获取IP的,子网掩码与网关类似。
import java.net.InetAddress;
import java.net.UnknownHostException;
public class getIP
{
public static void main(String[] args)
{
InetAddress myIP = null;
try{
myIP = InetAddress.getLocalHost();
}
catch( UnknownHostException e){
System.out.println(e);
}
System.out.println(myIP);
}
}
import java.util.*;
import java.net.*;
public class Test {
public static void main(String[] args) throws Throwable {
InetAddress ip = InetAddress.getByAddress(new byte[]{127,0,0,1});
NetworkInterface ni = NetworkInterface.getByInetAddress(ip);
List<InterfaceAddress> list = ni.getInterfaceAddresses();
if (list.size() > 0) {
int mask = list.get(0).getNetworkPrefixLength();
mask = (-1 >> (31-(mask-1))) << (31-(mask-1));
StringBuilder maskStr = new StringBuilder();
byte[] maskIp = new byte[4];
for (int i=0; i<maskIp.length; i++) {
maskIp[i] = (byte)(mask>>(maskIp.length-1-i)*8);
maskStr.append((maskIp[i] & 0xff));
if (i < maskIp.length-1) {maskStr.append(".");}
}
System.out.println(maskStr);
}
}
}import java.util.*;
import java.net.*;
public class Test {
public static void main(String[] args) throws Throwable {
//这里作为测试直接取IP地址,LZ可以根据需要自己调整调用相应的方法
InetAddress ip = InetAddress.getByAddress(new byte[]{127, 0, 0, 1});
NetworkInterface ni = NetworkInterface.getByInetAddress(ip);
List<InterfaceAddress> list = ni.getInterfaceAddresses();
if (list.size() > 0) {
int mask = list.get(0).getNetworkPrefixLength(); //子网掩码的二进制1的个数
StringBuilder maskStr = new StringBuilder();
int[] maskIp = new int[4];
for (int i=0; i<maskIp.length; i++) {
maskIp[i] = (mask >= 8) ? 255 : (mask > 0 ? (mask & 0xff) : 0);
mask -= 8;
maskStr.append(maskIp[i]);
if (i < maskIp.length-1) {maskStr.append(".");}
}
System.out.println(maskStr);
}
}
}