如何检查IP地址范围是否属于A类,B类,C类

时间:2014-02-22 17:08:00

标签: java class ip addressing

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类。

2 个答案:

答案 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