我正在嘗試使用Boost進行某些IPv6和多播網絡通信。我需要構建一個使用特定網絡接口索引的IPv6多播套接字。查找IPv6的正確「網絡接口」編號
我能夠找到正確的組播選項來設置網絡接口指數升壓/ ASIO/IP /細節/ socket_option.hpp: 明確multicast_request(常量的boost ::支持ASIO ::知識產權:: address_v6 & multicast_address, unsigned long network_interface = 0)
問題是,我不知道如何找到「network_interface」參數的正確值。有沒有辦法使用我可以提供的本地IPv6地址獲取network_interface值?我查看了文檔和示例,但找不到任何東西。
- 迪倫
我已經使用'if_nametoindex(3)'函數在Linux上,它的工作完美。 I.e .:「int interfaceIndex = if_nametoindex(」eth0「); socket.set_option(boost :: asio :: ip :: multicast :: join_group(address.to_v6(),interfaceIndex));' – uldall 2013-03-21 12:19:28