Làm cách nào để nhận tất cả địa chỉ IP và tên máy chủ lưu trữ được kết hợp trong mạng LAN?Danh sách tất cả các máy chủ trên mạng LAN
Trả lời
Để có danh sách giao diện và địa chỉ IP, hãy sử dụng getifaddrs()
.
Tìm kiếm các giao diện với ifa_addr->sa_family == AF_INET
Địa chỉ IP là trong sin_addr.s_addr
.
Sau đó, bạn có thể sử dụng gethostbyaddr()
để tra cứu tên DNS cho địa chỉ IP đó.
Cập nhật:
Nó được chỉ ra cho tôi rằng OP có lẽ hỏi về khám phá máy chủ khác, chứ không phải là địa chỉ của giao diện trên máy cục bộ.
Không có cách nào đáng tin cậy để khám phá các máy khác trên mạng cục bộ, nhưng có một vài thủ thuật.
Phương thức ping (hoặc tương đương chương trình) để ping địa chỉ quảng bá cục bộ, sau đó xem người trả lời. Địa chỉ quảng bá có thể được tìm thấy bằng cách liệt kê các giao diện như được hiển thị ở trên. Tôi tin rằng ICMP không yêu cầu quyền truy cập root trong OSX. Lưu ý rằng nhiều hệ thống có thể bị vô hiệu hóa hoặc tường lửa ICMP, vì vậy bạn sẽ chỉ nhận được phản hồi từ những người không ẩn.
Phương thức ARP: Kiểm tra bộ nhớ cache ARP của hệ thống để xem địa chỉ IP nào đã hoạt động gần đây. Điều này sẽ chỉ hiển thị các hệ thống có gói phát sóng trên cùng một phân đoạn mạng trong vài phút gần đây.
Cả hai phương pháp đều có thể bị chặn bởi tường lửa, bộ định tuyến và chuyển mạch, vì vậy đường viền chính xác của "LAN" có thể khá hẹp. Cả hai phương pháp có thể được thực hiện theo chương trình, nhưng nó có thể đơn giản và dễ dàng hơn để chỉ cần gọi ra lệnh dòng lệnh ping
hoặc arp
.
Câu hỏi có vẻ giống như tác giả muốn liệt kê tất cả các máy chủ khác nhau trên mạng LAN chứ không chỉ thông tin về các liên kết lưu trữ của máy chủ hiện tại. – jdizzle
Có lẽ. Tôi thấy bây giờ câu hỏi ban đầu không phải là nền tảng cụ thể, vì vậy bạn có thể đúng. –
- 1. Làm cách nào để nhận IP của tất cả các máy chủ trong mạng LAN?
- 2. PowerShell lấy danh sách các máy mạng
- 3. Cách lấy danh sách các máy tính mạng cục bộ?
- 4. Lấy danh sách các thiết bị trong mạng cục bộ (LAN)?
- 5. Truy cập máy chủ ảo ảo (Miền phụ) với máy tính khác nhau trên mạng LAN
- 6. Lấy danh sách tất cả các máy chủ in trong miền trong C#
- 7. Liệt kê Địa chỉ IP của tất cả các máy tính được kết nối với một mạng LAN
- 8. Truy cập máy chủ ảo từ máy khác qua mạng LAN
- 9. Tự động tìm các máy chủ khác trong một mạng LAN trong Java
- 10. liệt kê tất cả tên máy tính trên mạng cục bộ trên iPhone
- 11. Tìm tất cả các trường varchar() trong máy chủ sql?
- 12. Danh sách tất cả máy chủ whois của .com và .net?
- 13. Làm cách nào để truy cập máy chủ phát triển chai từ một máy tính khác trên mạng LAN?
- 14. Kết nối với Máy chủ web cục bộ khi tôi đang ở ngoài mạng LAN
- 15. Danh sách tất cả backends matplotlib sẵn
- 16. Danh sách địa chỉ IP/tên máy chủ từ mạng cục bộ trong Python
- 17. Ping tên máy chủ trên mạng
- 18. Danh sách tất cả các tệp đang mở
- 19. kết nối với máy chủ mysql trên một máy tính khác trong LAN
- 20. Tải xuống tất cả các tệp từ Máy chủ FTP
- 21. Làm thế nào để có được một danh sách tắt tất cả các phiên máy chủ trong laravel?
- 22. truy xuất danh sách tất cả các nhãn trong blogger
- 23. Nhận danh sách tất cả các lần bấm với Git
- 24. SQL Server tất cả các danh sách lỗi?
- 25. Định dạng tất cả các phần tử trong danh sách
- 26. Danh sách tất cả các cam kết git?
- 27. Lấy Danh sách tất cả các Màn hình Xorg
- 28. Danh sách MySQL Tất cả trùng lặp
- 29. Làm tất cả các máy chủ IRC gửi 005 RPL_ISUPPORT?
- 30. Android - Cách nhận danh sách tất cả các bộ lọc có chủ ý có sẵn?
Nền tảng (OS) của bạn là gì? Bạn có muốn C++ hoặc Cocoa? –
@Steve: Nền tảng của tôi là Mac OS X 10.6 và nhà phát triển ca cao. Nhưng, tôi đang sử dụng giao thức RFB. Và tôi phải sử dụng những giao thức được viết bằng ngôn ngữ C/C++. – boom
Vì vậy, một giải pháp C/C++ trên OS X sẽ làm việc cho bạn? –