2009-07-15 34 views
5

Tôi có ổ cắm DWORD trong cửa sổ. Tôi cần phải biết nếu nó là một kết nối mà đi ra ngoài internet hoặc nếu nó là một kết nối địa phương, để một số hình thức localhost. Có cách nào tốt để có được địa chỉ mà các ổ cắm được kết nối với trong cửa sổ từ chỉ là ổ cắm? Hoặc có cách nào tốt hơn để biết liệu kết nối có phải là cục bộ hay không?Làm cách nào để lấy địa chỉ IP từ ổ cắm Trong Windows

+0

Bạn phải cẩn thận với IPv6. Bạn rất có thể đã không tạo ra các ổ cắm chính mình (khác bạn có thể nhớ những gì nó kết nối với) vì vậy bạn có thể đối phó với một số ổ cắm được tạo ra ở nơi khác. Và vì ngoài tầm kiểm soát của bạn, nó có thể sử dụng IPv6. – MSalters

Trả lời

5

Bạn có thể muốn gọi getpeername(). Sử dụng nó là khá cơ bản, bạn vượt qua một con trỏ sockaddr và chiều dài và nó điền vào dữ liệu cho bạn.

Theo như xác định xem kết nối có phải là cục bộ không, getaddrinfo() có thể cung cấp cho bạn danh sách tất cả các địa chỉ cục bộ khả dụng. Bạn sẽ so sánh kết quả của getpeername() với danh sách địa chỉ cục bộ.

Các vấn đề liên quan