2012-05-11 44 views
9

Java uygulamamda, kullanıcı IP'ye girerse, ana bilgisayar adını görüntülememiz gerekir, eğer ana bilgisayar adı verilirse, ana bilgisayarın IP adresini görüntülememiz gerekir. Örneğin, kullanıcı 173.194.36.37 gibi bir IP adresi girerse, uygulama google.com'u görüntülemeli ve tam tersi göstermelidir.IP adresini ana bilgisayar adına dönüştürme

Bu işlemi gerçekleştirmek için herhangi bir yardımcı program var mı?

+0

bir IP numarası birkaç hostnames olabileceğini biliyoruz: java.net.InetAddress göz at? örneğin 127.0.0.1 * hem * localhost ve localhost.localdomain adresine sahiptir – vidstige

+0

@vidstige Ters DNS ile değil. Burada IP, "canonical host name" olarak adlandırılan tam bir ana bilgisayar adıyla eşleştirilmiştir. – glglgl

+1

size benzersiz bir sonuç alamıyorsunuz http://aruljohn.com/ip2hostname.html for 173.194.36.37 bkz. Bom04s02-in-f5.1e100.net google.com değil! – SjB

cevap

17

Eğer Java kodlama yapıyorsanız, alan adının açısından InetAddress

InetAddress addr = InetAddress.getByName("173.194.36.37"); 
String host = addr.getHostName(); 
System.out.println(host); 
+4

Açıkçası, UnknownHostException için istisna işlemlerini unutma. – ccKep

2

Aradığın şey DNS adlı bir şey. This project, aradığınız şey gibi görünüyor.

+0

InetAddress.getHostName() 'varsa üçüncü taraf kitaplıklarını getirmeniz gerekmez. –

+2

@PhilippReichart Soru, "Herhangi bir yardımcı program var mı" yazıyor, bu yüzden açık kaynaklı üçüncü taraf kitaplıklarının neden kullanılmadığını düşünüyorum. –

+0

@PrakashK Sadelik. Varolan bir yöntemi çağırarak istediğiniz her şey elde edilebildiğinde neden 100'den fazla * sınıfı getirin? Çok daha az hareketli parça, yanlış gitmek için çok daha az. –

0

kullanmayı deneyin, hiçbir kamu orada inşa edilir, hayır. , numaralı telefonu, InetAddress numaralı telefondan getCanonicalHostName() kullanarak bir ana bilgisayarın adını (ancak etki alanı adını değil) alabilir. Burada en iyi cevap, alan adını alacak DNS Java projesine bağlanmıştır. Size anılacaktır

public class GetHostName { 
public static void main(String[] args) throws Exception { 
    InetAddress address = InetAddress.getByAddress(new byte[]{74, 125,(byte) 227, 7}); 
    System.out.println(address.getCanonicalHostName()); 
} 
} 
2

proje SomeKittens hangi might, Java ile yazılmış tam bir DNS sunucusu gibi görünür: Google'ın sunuculardan biri aşağıda verilmiştir gelen

Örnek kod bağlanmak ve ana bilgisayar adını almak için İhtiyacın olandan daha fazla ol.

java.net.InetAddress.getByName("example.com").getHostAddress(); 
+0

Google.com için bu kod bana "74.125.237.100" sonucunu veriyor. – Jon

+0

Ve bu doğru, değil mi? Http://74.125.237.100/ adresine gidersem google.com'a giderim. – Brian

+0

Hayır. OP, size bir IP adresi verilen alan adını verecek bir şey sordu. Yukarıdaki kod tam tersi verir - bir alan adı verilen bir IP adresi. – Jon

İlgili konular