máy chủ getent in IPv6, ahosts getent in IPv4


9

Đầu ra nguyên văn từ thiết bị đầu cuối của tôi:

$ 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    

Tôi nghĩ rằng cả hai (ít nhất là ahost ) phải in cả địa chỉ IPv4 và IPv6. Tại sao các loại địa chỉ in khác nhau?

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

Chỉnh sửa : Có vẻ như nó có thể liên quan đến báo cáo lỗi này .


Tiêu đề sai (ngược lại với đầu ra)
whoan

Câu trả lời:


8

Cả hai getent hostsgetent ahostscó khả năng có thể in cả địa chỉ IPv4 và IPv6, nhưng chúng quyết định địa chỉ nào sẽ in khác nhau (đó là điểm có hai lệnh khác nhau).

hostscác cuộc gọi gethostbyname2(biến thể hỗ trợ IPv6 của gethostbyname). Hành vi được mã hóa cứng : tra cứu địa chỉ IPv6 và nếu không tồn tại, hãy tìm địa chỉ IPv4.

ahostscác cuộc gọi getaddrinfo. Hàm này liệt kê tất cả các giao thức cho một tên đã cho, do đó, nó có thể trả về cả địa chỉ IPv4 và IPv6 trong cùng một cuộc gọi. Những gì nó trả về được xác định bởi các cài đặt trong /etc/gai.conf. Do nhiều ứng dụng vẫn đang vật lộn để đối phó với IPv6, nên hầu hết các bản phân phối đều thích IPv4 theo mặc định và chỉ sử dụng IPv6 theo yêu cầu rõ ràng.

Một số cách đọc hữu ích trên ahostsgai.confxung quanh Stack Exchange:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.