2010-03-09 33 views

Trả lời

56

Nếu bạn đang tìm kiếm bất kỳ địa chỉ IP mà có giá trị trong các máy chủ địa phương sau đó bạn phải kiểm tra các máy chủ đặc biệt địa phương (ví dụ 127.0.0.1) địa chỉ cũng như những người thân giao cho bất kỳ giao diện. Ví dụ ...

public static boolean isThisMyIpAddress(InetAddress addr) { 
    // Check if the address is a valid special local or loop back 
    if (addr.isAnyLocalAddress() || addr.isLoopbackAddress()) 
     return true; 

    // Check if the address is defined on any interface 
    try { 
     return NetworkInterface.getByInetAddress(addr) != null; 
    } catch (SocketException e) { 
     return false; 
    } 
} 

Với một chuỗi, chỉ ra cổng, gọi này với:

boolean isMyDesiredIp = false; 
try 
{ 
    isMyDesiredIp = isThisMyIpAddress(InetAddress.getByName("192.168.220.25")); //"localhost" for localhost 
} 
catch(UnknownHostException unknownHost) 
{ 
    unknownHost.printStackTrace(); 
} 
+0

Đó nên là InetAddress.getHostName ("ip đến đây") ... getbyHostName không tồn tại . –

+3

@AbhijeetKashnia: Cảm ơn, nhưng thực ra nó phải là 'InetAddress.getByName()', 'getHostName()' là một phương thức đối tượng, không phải là một phương thức lớp và nó thực hiện một cái gì đó khác (nó lấy tên máy chủ cho địa chỉ IP, khi sử dụng tra cứu DNS ngược). –

Các vấn đề liên quan