ฉันมีที่อยู่ IP ของเซิร์ฟเวอร์ DNS และชื่อโฮสต์
เมื่อใช้ Java ฉันจะค้นหาที่อยู่ IP ของชื่อโฮสต์ที่เซิร์ฟเวอร์ DNS นั้นส่งคืนโดยใช้ที่อยู่ IP และชื่อโฮสต์ได้อย่างไร
ฉันมีที่อยู่ IP ของเซิร์ฟเวอร์ DNS และชื่อโฮสต์
เมื่อใช้ Java ฉันจะค้นหาที่อยู่ IP ของชื่อโฮสต์ที่เซิร์ฟเวอร์ DNS นั้นส่งคืนโดยใช้ที่อยู่ IP และชื่อโฮสต์ได้อย่างไร
คำตอบ:
ลองดูInetAddressและgetHostAddress()วิธีการ
InetAddress address = InetAddress.getByName("www.example.com");
System.out.println(address.getHostAddress());
InetAddressควรจะได้รับการแก้ไขที่อยู่ DNS getHostAddress()เมื่อคุณขอ ฉันไม่แน่ใจว่าคุณสามารถบังคับให้ใช้เซิร์ฟเวอร์ DNS เฉพาะได้หรือไม่
คุณสามารถทำได้ดังนี้:
for(InetAddress addr : InetAddress.getAllByName("stackoverflow.com"))
System.out.println(addr.getHostAddress());
คุณสามารถใช้ InetAddress สำหรับสิ่งนี้ ลองใช้รหัสด้านล่าง
InetAddress address = InetAddress.getByName("www.yahoo.com");
System.out.println(address.getHostAddress());
System.out.println(address.getHostName());
ตามที่แนะนำไว้ข้างต้นคุณสามารถใช้ได้
InetAddress.getByName("hostName")แต่สิ่งนี้สามารถให้ IP ที่แคชไว้อ่านเอกสาร java สำหรับสิ่งเดียวกัน หากคุณต้องการรับ IP จาก DNS คุณสามารถใช้:
InetAddress[] ipAddress = DNSNameService.lookupAllHostAddr("hostName");
dig <hostname>ในบรรทัดคำสั่ง?