Tworzenie obiektu InetAddress w Javie


Próbuję zamienić adres podany przez numer IP lub nazwę w postaci ciągu (tj.
localhost
lub
127.0.0.1
) na obiekt

InetAdress
... Nie ma konstruktora, ale zwracają się statyczne metody

InetAddress
... Więc jeśli otrzymam nazwę hosta, nie stanowi to problemu, ale co, jeśli otrzymam numer IP? Jest jedna metoda, która odbiera

byte[]

ale nie jestem pewien, jak to może mi pomóc. Wszystkie inne metody otrzymują nazwę hosta.
Dokumentacja interfejsu API InetAddress
http://download.oracle.com/jav ... .html
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Powinieneś być w stanie użyć

getByName

lub

getByAddress

.

Nazwą hosta może być dowolna maszyna
nazwa, na przykład „java.sun.com” lub
tekstowe przedstawienie jej własności intelektualnej
adres

InetAddress addr = InetAddress.getByName("127.0.0.1");

Można użyć metody, która akceptuje tablicę bajtów:
byte[] ipAddr = new byte[]{127, 0, 0, 1};
InetAddress addr = InetAddress.getByAddress(ipAddr);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Od API do InetAddress

Nazwą hosta może być dowolna maszyna
nazwa, na przykład „java.sun.com” lub
tekstowe przedstawienie jej własności intelektualnej
adres. Jeśli dosłowny adres IP to
dostarczona, tylko rzeczywistość
format adresu jest sprawdzany.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

ip = InetAddress.getByAddress(new byte[] {
(byte)192, (byte)168, (byte)0, (byte)102});
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

InetAddress.getByName działa również dla adresu IP.
Z JavaDoc

Nazwą hosta może być dowolna maszyna
nazwa, na przykład „java.sun.com” lub
tekstowe przedstawienie jej własności intelektualnej
adres. Jeśli dosłowny adres IP to
dostarczona, tylko rzeczywistość
format adresu jest sprawdzany.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

interfejs API jest dość łatwy w użyciu.
// Lookup the dns, if the ip exists.
if (!ip.isEmpty()) {
InetAddress inetAddress = InetAddress.getByName(ip);
dns = inetAddress.getCanonicalHostName();
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jest to projekt uzyskiwania adresu IP dowolnej witryny, jest użyteczny i łatwy do utworzenia.
import java.net.InetAddress;
import java.net.UnkownHostExceptiin;public class Main{
public static void main(String[]args){
try{
InetAddress addr = InetAddresd.getByName("www.yahoo.com");
System.out.println(addr.getHostAddress()); }catch(UnknownHostException e){
e.printStrackTrace();
}
}
}

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się