我正在使用Boost ASIO庫在C++中編寫客戶端。我希望獲得服務器IP的字符串表示形式,以顯示在我的客戶端日誌中。有誰知道該怎麼做?使用Boost ASIO查找服務器IP
1
A
回答
1
就獲取IP而言,套接字具有檢索遠程端點的功能。我給這條產業鏈的命令,他們應該獲取遠端IP地址的字符串表示:
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();
對於從來沒有見過這樣的ASIO功能連通性的觀點。
+0
網絡連接的東西呢? – CMouse
+0
我也在尋求相同的幫助。 –
0
std::string s = boost::lexical_cast<std::string>(socket.remote_endpoint());
這應該是訣竅!
0
您可能希望做主機查找:
#include <iostream>
#include <boost/asio.hpp>
#include <boost/range/iterator_range.hpp>
using boost::asio::ip::tcp;
int main() {
char name[64], domain[64];
if (::gethostname(name, 64)) ::perror("gethostname failed");
if (::getdomainname(domain, 64)) ::perror("getdomainname failed");
boost::asio::io_service ios;
tcp::resolver res(ios);
std::string name_s(name), domain_s(domain);
for (auto match : boost::make_iterator_range(res.resolve({name_s+"."+domain_s, "0"}), {})) {
std::cout << name << " -> " << match.endpoint().address() << "\n";
}
}
這可能會打印出類似這樣
desktop.fritz.box -> 192.168.182.20
相關問題
- 1. 如何使用Boost ASIO在UDP服務器中傳遞源IP
- 2. Boost asio - udp服務器
- 3. Boost Asio tcp :: resolver:未找到服務
- 4. Boost Asio UDP服務器套接字偵聽指定的IP
- 5. 客戶端的C++ boost/asio服務器
- 6. Boost :: asio阻止Tcp服務器混淆
- 7. boost :: asio tcp數據庫服務器
- 8. boost :: asio服務器功能簡單
- 9. boost :: asio服務器多進程
- 10. 使用boost :: asio :: ip :: tcp :: socket作爲shared_ptr
- 11. 使用Boost :: asio的TCP/IP客戶端
- 12. boost asio - 使用ip地址連接
- 13. boost asio服務器掛起在調用關閉boost :: socket
- 14. boost :: asio服務器 - 檢測服務器端口失敗
- 15. BOOST ASIO使用
- 16. 使用boost :: asio連接到HTTPS服務器
- 17. 如何在boost :: asio服務器中使用端口80?
- 18. 服務器和客戶端同時使用Boost-Asio
- 19. 通過sql查找服務器IP
- 20. 動態查找服務器IP地址
- 21. 如何使用boost ::支持ASIO :: IP :: TCP ::解析器
- 22. 查找服務器的IP地址
- 23. boost :: asio :: ip :: multicast :: join_group不起作用
- 24. 的boost :: ASIO檢查
- 25. boost :: asio :: async_read和boost :: asio :: streambuf
- 26. 使得使用boost :: ASIO
- 27. 升壓ASIO狀態服務器設計
- 28. C2228:TCP asio服務器出錯
- 29. boost boost :: asio
- 30. unget bytes to boost :: asio :: ip :: tcp :: socket
任何暗示對「網絡狀態」使用boost ASIO表示讚賞。 –
識別和報告「網絡狀態」對我而言是一個完全不同的問題。 – moooeeeep
這裏仍然是一個懸而未決的問題。 @moooeeeep – CMouse