ฉันต้องการค้นหาชื่อโฮสต์ของโฮสต์ UNIX ที่รู้จัก IP โดยไม่ต้องลงชื่อเข้าใช้โฮสต์ UNIX นั้น
ฉันต้องการค้นหาชื่อโฮสต์ของโฮสต์ UNIX ที่รู้จัก IP โดยไม่ต้องลงชื่อเข้าใช้โฮสต์ UNIX นั้น
คำตอบ:
ใช้nslookup
nslookup 208.77.188.166
...
Non-authoritative answer:
166.188.77.208.in-addr.arpa name = www.example.com.
sudo yum install bind-utils
ก่อน สิ่งนี้จะติดตั้งการค้นหา nslookup ให้คุณ
คุณสามารถทำการค้นหา DNS ย้อนกลับด้วยhost
เช่นกัน เพียงให้ที่อยู่ IP เป็นอาร์กิวเมนต์:
$ host 192.168.0.10
server10 has address 192.168.0.10
ยูทิลิตี้อีก NS ค้นหาที่สามารถนำมาใช้สำหรับการค้นหาเป็นตรงกันข้ามdig
กับ-x
ตัวเลือก:
$ dig -x 72.51.34.34
; <<>> DiG 9.9.2-P1 <<>> -x 72.51.34.34
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12770
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1460
;; QUESTION SECTION:
;34.34.51.72.in-addr.arpa. IN PTR
;; ANSWER SECTION:
34.34.51.72.in-addr.arpa. 42652 IN PTR sb.lwn.net.
;; Query time: 4 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Jan 25 21:23:40 2013
;; MSG SIZE rcvd: 77
หรือ
$ dig -x 127.0.0.1
; <<>> DiG 9.9.2-P1 <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11689
;; flags: qr aa ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR
;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 10 IN PTR localhost.
;; Query time: 2 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Jan 25 21:23:49 2013
;; MSG SIZE rcvd: 63
การอ้างอิงจากขุด manpage :
การค้นหาแบบย้อนกลับ - การจับคู่ที่อยู่กับชื่อ - ทำได้ง่ายขึ้นด้วย ตัวเลือก-x addr เป็นที่อยู่ IPv4 ในรูปแบบเลขฐานสิบจุดหรือที่อยู่ IPv6 ที่คั่นด้วยโคลอน เมื่อใช้ตัวเลือกนี้ไม่จำเป็นต้องระบุอาร์กิวเมนต์ชื่อคลาสและชนิด ขุดทำการค้นหาโดยอัตโนมัติสำหรับชื่อเช่น 11.12.13.10.in-addr.arpa และตั้งประเภทการสืบค้นและคลาสเป็น PTR และ IN ตามลำดับ
สำหรับ Windows ping -a 10.10.10.10
สำหรับ Windows ลอง:
NBTSTAT -A 10.100.3.104
หรือ
ping -a 10.100.3.104
สำหรับ Linux ให้ลอง:
nmblookup -A 10.100.3.104
พวกเขาเกือบจะเหมือนกัน
python -c "import socket;print(socket.gethostbyaddr('127.0.0.1'))"
หากคุณต้องการชื่อไม่มีข้อมูลเพิ่มเติมเพิ่ม [0] ในตอนท้าย:
python -c "import socket;print(socket.gethostbyaddr('8.8.8.8'))[0]"
python -c "import socket;print(socket.gethostbyaddr('10.16.7.10'))"
มันขึ้นอยู่กับบริบท ฉันคิดว่าคุณหมายถึงชื่อโฮสต์ของระบบปฏิบัติการ (ส่งคืนhostname
เมื่อคุณเข้าสู่ระบบ) คำสั่งนี้ใช้สำหรับชื่อภายในเท่านั้นดังนั้นเมื่อต้องการเคียวรีชื่อของเครื่องต้องใช้ระบบการตั้งชื่ออื่น มีหลายระบบที่ใช้ชื่อเพื่อระบุโฮสต์รวมถึง DNS, DHCP, LDAP (DN's) hostname
, ฯลฯ และหลายระบบใช้zeroconfเพื่อซิงโครไนซ์ชื่อระหว่างระบบตั้งชื่อหลายระบบ ด้วยเหตุผลนี้hostname
บางครั้งผลลัพธ์จากจะจับคู่ผลลัพธ์จากdig
(ดูด้านล่าง) หรือระบบการตั้งชื่ออื่น ๆ แต่บ่อยครั้งที่มันไม่ตรงกัน
DNSพบได้บ่อยที่สุดและใช้ทั้งบนอินเทอร์เน็ต (เช่นgoogle.com. A 216.58.218.142
) และที่บ้าน (mDNS / LLMNR) ดังนั้นนี่คือวิธีทำการค้นหา DNS แบบย้อนกลับ : dig -x <address>
( nslookup
และhost
เรียบง่ายขึ้นให้รายละเอียดน้อยลงและอาจกลับมาที่แตกต่างกัน ผลลัพธ์อย่างไรก็ตามdig
ไม่รวมอยู่ใน Windows)
โปรดทราบว่าชื่อโฮสต์ภายในCDNจะไม่สามารถแก้ไขชื่อโดเมนแบบบัญญัติ (เช่น "google.com") แต่ให้ใช้ชื่อโฮสต์ของโฮสต์ IP ที่คุณสอบถาม (เช่น "dfw25s08-in-f142.1e100.net"; 1e100 คือ 1 googol)
โปรดทราบว่าโฮสต์ DNS สามารถมีชื่อได้มากกว่าหนึ่งชื่อ นี่เป็นเรื่องปกติสำหรับโฮสต์ที่มีเว็บเซิร์ฟเวอร์มากกว่าหนึ่งแห่ง (การโฮสต์เสมือน) แม้ว่าสิ่งนี้จะกลายเป็นเรื่องธรรมดาน้อยลงด้วยการเพิ่มจำนวนของเทคโนโลยีการจำลองเสมือน โฮสต์เหล่านี้มีระเบียน PTR DNS หลายรายการหลายระเบียน
สุดท้ายทราบว่า DNS ระเบียนโฮสต์สามารถแทนที่โดยเครื่องท้องถิ่นผ่าน/ etc / hosts หากคุณไม่ได้รับชื่อโฮสต์ที่คุณคาดว่าให้ตรวจสอบไฟล์นี้
การสอบถามชื่อโฮสต์DHCPแตกต่างกันไปขึ้นอยู่กับซอฟต์แวร์เซิร์ฟเวอร์ DHCP ที่ใช้เพราะ (เท่าที่ฉันรู้) โปรโตคอลไม่ได้กำหนดวิธีการสอบถาม อย่างไรก็ตามเซิร์ฟเวอร์ส่วนใหญ่มีวิธีการทำเช่นนี้ (โดยปกติจะมีบัญชีพิเศษ)
หมายเหตุชื่อ DHCP มักจะถูกซิงโครไนซ์กับเซิร์ฟเวอร์ DNS ดังนั้นจึงเป็นเรื่องธรรมดาที่จะเห็นชื่อโฮสต์เดียวกันในตารางอย่างน้อยที่สุดไคลเอ็นต์ DHCP และในระเบียน A (หรือ AAAA สำหรับ IPv6) ของเซิร์ฟเวอร์ DNS อีกครั้งนี้มักจะทำเป็นส่วนหนึ่งของ zeroconf
โปรดทราบว่าเพียงเพราะ DHCP lease มีอยู่สำหรับลูกค้าไม่ได้หมายความว่ายังคงมีการใช้งานอยู่
NetBIOS สำหรับ TCP / IP (NBT)ถูกใช้มานานหลายทศวรรษเพื่อดำเนินการแก้ไขชื่อ แต่หลังจากนั้นถูกแทนที่ด้วย LLMNR สำหรับการจำแนกชื่อ (ส่วนหนึ่งของ zeroconf บน Windows) ระบบดั้งเดิมนี้ยังสามารถสอบถามได้ด้วยnbtstat
(Windows) หรือnmblookup
(Linux)
คำตอบอื่น ๆ ที่นี่ถูกต้อง - ใช้การค้นหา DNS ย้อนกลับ หากคุณต้องการใช้ภาษาสคริปต์ (Python, Perl) คุณสามารถใช้ gethostbyaddr API
หากคุณกำลังมองหาเครื่อง Windows โดยเฉพาะลองใช้คำสั่งด้านล่าง:
nbtstat -a 10.228.42.57
คุณสามารถใช้คำสั่ง traceroute ได้เช่นกัน
http://linux.die.net/man/8/traceroute
เพียงแค่ใช้ traceroute มันจะแสดงเส้นทางเส้นทางที่มีชื่อโฮสต์ (แก้ไข IP ได้)
ในกรณีส่วนใหญ่คำสั่ง traceroute ทำงานได้ดี คำสั่ง nslookup และโฮสต์อาจล้มเหลว