2010-07-30 13 views
20

mio file hosts (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts) ha un mucchio di indirizzo IP al nome host mappature:Indirizzo IP a nome host in Java?

# Switches 
192.168.200.254  sw-con-ctrl 
192.168.201.253 sw-con-ctrl-2 
192.168.201.254  sw-con-ctrl-1 
# 192.168.188.1  sw-con-ctrl-blk-1 
# 192.168.189.1  sw-con-ctrl-red 
192.168.190.62  access-console 

# Routers 
192.168.21.1   rtr1 
192.168.22.1   rtr2 

Sto cercando di trovare un modo per convertire da un IPAddress a l'hostname a livello di programmazione tramite le API Java.

Pseudocodice:

IPAddress ip = new IPAddress("192.168.190.62"); 
String host = ip.getHost(); 
System.out.println(host); //prints "access-console" 

risposta

43

Ho provato il codice da here e funziona. Vale a dire:

InetAddress addr = InetAddress.getByName("192.168.190.62"); 
    String host = addr.getHostName(); 
    System.out.println(host); 
1

Questo funziona come i javadocs dicono locale solo quando è necessaria alcuna ricerca inversa: Se viene fornito un indirizzo IP letterale, solo la validità del formato di indirizzo sia selezionata.

Se qualcuno conosce un modo senza utilizzare vasi di terze parti per fare la ricerca remota ...

2

si può provare con questo code.I che il suo utile

import java.net.InetAddress; 
import java.net.UnknownHostException; 

public class IpTest { 
    public static void main(String args[]) throws UnknownHostException { 
     InetAddress addr = InetAddress.getLocalHost(); 
     String ipAddress = addr.getHostAddress();  
     System.out.println("IP address of localhost : " + ipAddress); 
     String hostname = addr.getHostName(); 
     System.out.println("Name of hostname : " + hostname); 
    } 
}