Tôi đang viết một máy chủ trong C++ bằng cách sử dụng thư viện Boost ASIO. Tôi muốn nhận được biểu diễn chuỗi của IP của khách hàng được hiển thị trong nhật ký máy chủ của tôi. Có ai biết làm thế nào để làm điều đó?Cách lấy địa chỉ IP tăng :: asio :: ip :: tcp :: socket?
46
A
Trả lời
67
Ổ cắm có chức năng sẽ truy xuất điểm cuối từ xa. Anh sẽ cho này (dài ish) chuỗi các lệnh một đi, họ nên lấy chuỗi đại diện của điều khiển từ xa địa chỉ IP cuối:
asio::ip::tcp::socket socket(io_service);
// Do all your accepting and other stuff here.
asio::ip::tcp::endpoint remote_ep = socket.remote_endpoint();
asio::ip::address remote_ad = remote_ep.address();
std::string s = remote_ad.to_string();
hoặc phiên bản one-liner:
asio::ip::tcp::socket socket(io_service);
// Do all your accepting and other stuff here.
std::string s = socket.remote_endpoint().address().to_string();
21
hoặc, thậm chí dễ dàng hơn, với boost::lexical_cast
:
#include <boost/lexical_cast.hpp>
std::string s = boost::lexical_cast<std::string>(socket.remote_endpoint());
Các vấn đề liên quan
- 1. boost :: asio :: ip :: tcp :: socket được kết nối?
- 2. Tăng địa chỉ IP
- 3. Lấy địa chỉ IP của đầu cuối socket từ xa
- 4. Tăng Asio Multithreaded TCP Synchronous Server
- 5. Xác định địa chỉ IP và cổng của kết nối TCP/IP đến trong Erlang
- 6. Làm thế nào nên một giọt nước mắt xuống một tăng :: asio :: ip :: udp :: socket?
- 7. Cách nghe trên nhiều địa chỉ IP?
- 8. Cách lấy địa chỉ IP của máy chủ?
- 9. Cách lấy địa chỉ IP của máy chủ ứng dụng
- 10. Cách lấy tên máy chủ dựa trên địa chỉ IP?
- 11. Cách lấy địa chỉ IP của người dùng bằng .net?
- 12. Vấn đề hiệu suất Socket Java TCP/IP
- 13. Địa chỉ IP từ sk_buff
- 14. Địa chỉ IP trong MaskedTextBox?
- 15. trim địa chỉ ip octet
- 16. Giải quyết địa chỉ IP từ DNS trong C#
- 17. Đảo ngược ip, tìm tên miền trên địa chỉ IP
- 18. Lấy địa chỉ IP cục bộ bằng hàm getaddrinfo() C?
- 19. Kết nối ổ cắm bằng địa chỉ IP phụ
- 20. Lấy tên miền từ địa chỉ IP ở số
- 21. Cách lấy địa chỉ IP từ địa chỉ Mac theo lập trình trên Android?
- 22. WICKET: cách lấy địa chỉ ip/địa chỉ của khách hàng
- 23. Làm cách nào để lấy địa chỉ vật lý (MAC) của địa chỉ IP bằng C#?
- 24. Nhận địa chỉ IP cục bộ
- 25. ServerSocket + client Socket - làm cách nào để nhận địa chỉ IP của ứng dụng khách?
- 26. Python: Nhận địa chỉ IP cục bộ được sử dụng để gửi dữ liệu IP đến một địa chỉ IP từ xa cụ thể
- 27. Dns.GetHostEntry trả về nhiều địa chỉ IP
- 28. boost :: asio :: ip :: multicast :: join_group không hoạt động
- 29. Cần trợ giúp để nhận số cổng TCP và địa chỉ IP trong C
- 30. Giải phóng cổng TCP/IP?
Cám ơn câu trả lời của bạn, tôi đã tìm ra các chuỗi có thể được viết đơn giản là:.. giải quyết socket.remote_endpoint()() to_string() – kyku
Vâng, đó là cách tôi đã làm nó (giả sử không có khả năng của null hoặc lỗi tại các điểm tạm thời). Tôi để nó mở rộng cho mục đích giải thích. Theo tôi, phiên bản một lớp là tốt hơn (tôi thích mã của tôi tương đối nhỏ gọn vì vậy tôi có thể thấy nhiều hơn trên màn hình). – paxdiablo