import java.net.*;
import java.io.*;
public class ip_host {
public static void main(String args[]) throws Exception {
System.out.println("Enter the host name :");
String n = new DataInputStream(System.in).readLine();
InetAddress ipadd = InetAddress.getByName(n);
System.out.println("IP address :" + ipadd);
}
}
我有这个程序找到了IP地址,但是我想扩展它以找到IP类。
答案 0 :(得分:2)
您可以通过提取地址的第一个三元组并检查适当的范围来手动完成。
InetAddress address = InetAddress.getByName(host);
String firstTriplet = address.getHostAddress().
substring(0,address.getHostAddress().indexOf('.'));
if (Integer.parseInt(firstTriplet) < 128) {
System.out.println("Class A IP");
} else if (Integer.parseInt(firstTriplet) < 192) {
System.out.println("Class B IP");
} else {
System.out.println("Class C IP");
}
修改强>: 固定班级
答案 1 :(得分:0)
您可以将其转换为byte [],然后检查最高字节:
byte[] address = ipadd.getAddress();
int highest = address[0] & 0xFF;
if (highest >= 0 && highest < 128) // class A
else if (highest < 192) // class B
else if (highest < 224) // class C