โฮสต์ getent พิมพ์ IPv6, ahosts getent พิมพ์ IPv4


9

เอาท์พุทคำต่อคำจาก terminal ของฉัน:

$ getent hosts example.org
2001:500:88:200::10 example.org
$ getent ahosts example.org
192.0.43.10     STREAM 43-10.any.icann.org
192.0.43.10     DGRAM  
192.0.43.10     RAW    

ฉันคิดว่าพวกเขาทั้งคู่ (อย่างน้อยahosts ) ควรพิมพ์ทั้งที่อยู่ IPv4 และ IPv6 เหตุใดการพิมพ์ประเภทที่อยู่เหล่านี้จึงแตกต่างกัน

$ uname -srvmpio
Linux 3.2.0-31-generic #50-Ubuntu SMP Fri Sep 7 16:17:36 UTC 2012 i686 i686 i386 GNU/Linux

แก้ไข : ดูเหมือนว่าอาจเกี่ยวข้องกับรายงานข้อผิดพลาดนี้


ชื่อผิด (ตรงข้ามกับผลลัพธ์)
โห่

คำตอบ:


8

ทั้งสองgetent hostsและgetent ahostsสามารถพิมพ์ได้ทั้งที่อยู่ IPv4 และ IPv6 แต่พวกเขาตัดสินใจว่าที่อยู่ใดที่จะพิมพ์แตกต่างกัน (นั่นคือจุดที่มีสองคำสั่งต่างกัน)

hostsการโทรgethostbyname2(ตัวแปรที่รองรับ IPv6 ของgethostbyname) ลักษณะการทำงานนี้กำหนดค่าตายตัว : ค้นหาที่อยู่ IPv6 และหากไม่มีอยู่ให้ค้นหาที่อยู่ IPv4

ahostsgetaddrinfoโทร ฟังก์ชันนี้จะแจกแจงโปรโตคอลทั้งหมดสำหรับชื่อที่กำหนดเพื่อให้สามารถส่งคืนทั้งที่อยู่ IPv4 และ IPv6 ในการโทรเดียวกัน /etc/gai.confสิ่งที่จะได้ผลตอบแทนที่ได้จะถูกกำหนดโดยการตั้งค่าใน เนื่องจากแอปพลิเคชั่นจำนวนมากยังคงดิ้นรนเพื่อรับมือกับ IPv6 การกระจายส่วนใหญ่ต้องการ IPv4 โดยค่าเริ่มต้นและใช้เฉพาะ IPv6 โดยการร้องขออย่างชัดเจน

การอ่านahostsและgai.confแลกเปลี่ยน Stack ที่มีประโยชน์:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.