UPNP¶
类别: 核心
简要说明¶
UPNP网络功能。
方法¶
无效 |
add_device ( UPNPDevice device ) |
add_port_mapping ( int port, int port_internal=0, String desc="", String proto="UDP", int duration=0 ) const |
|
无效 |
clear_devices ( ) |
delete_port_mapping ( int port, String proto="UDP" ) const |
|
discover ( int timeout=2000, int ttl=2, String device_filter="InternetGatewayDevice" ) |
|
get_device ( int index ) const |
|
get_device_count ( ) const |
|
get_gateway ( ) const |
|
query_external_address ( ) const |
|
无效 |
remove_device ( int index ) |
无效 |
set_device ( int index, UPNPDevice device ) |
枚举¶
枚举 UPNPResult :
UPNP_RESULT_SUCCESS = 0 ---UPNP命令或发现成功。
UPNP_RESULT_NOT_AUTHORIZED = 1 ---未授权在 UPNPDevice . 当用户禁用路由器上的UPNP时,可能会返回。
UPNP_RESULT_PORT_MAPPING_NOT_FOUND = 2 ---没有找到给定端口的端口映射,给定端口上的协议组合 UPNPDevice .
UPNP_RESULT_INCONSISTENT_PARAMETERS = 3 ---参数不一致。
UPNP_RESULT_NO_SUCH_ENTRY_IN_ARRAY = 4 ---数组中没有这样的条目。如果在 UPNPDevice .
UPNP_RESULT_ACTION_FAILED = 5 ---操作失败。
UPNP_RESULT_SRC_IP_WILDCARD_NOT_PERMITTED = 6 --- UPNPDevice 不允许源IP地址使用通配符值。
UPNP_RESULT_EXT_PORT_WILDCARD_NOT_PERMITTED = 7 --- UPNPDevice 不允许外部端口使用通配符值。
UPNP_RESULT_INT_PORT_WILDCARD_NOT_PERMITTED = 8 --- UPNPDevice 不允许内部端口使用通配符值。
UPNP_RESULT_REMOTE_HOST_MUST_BE_WILDCARD = 9 ---远程主机值必须是通配符。
UPNP_RESULT_EXT_PORT_MUST_BE_WILDCARD = 10 ---外部端口值必须是通配符。
UPNP_RESULT_NO_PORT_MAPS_AVAILABLE = 11 ---没有可用的端口映射。如果端口映射功能不可用,也可能返回。
UPNP_RESULT_CONFLICT_WITH_OTHER_MECHANISM = 12 ——与其他机制冲突。可以退回而不是 UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING 如果端口映射与现有映射冲突。
UPNP_RESULT_CONFLICT_WITH_OTHER_MAPPING = 13 ---与现有端口映射冲突。
UPNP_RESULT_SAME_PORT_VALUES_REQUIRED = 14 ---外部和内部端口值必须相同。
UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED = 15 ---仅支持永久租赁。不要使用
duration
添加端口映射时的参数。UPNP_RESULT_INVALID_GATEWAY = 16 ---无效网关。
UPNP_RESULT_INVALID_PORT = 17 ---无效端口。
UPNP_RESULT_INVALID_PROTOCOL = 18 ---协议无效。
UPNP_RESULT_INVALID_DURATION = 19 ---持续时间无效。
UPNP_RESULT_INVALID_ARGS = 20 ---参数无效。
UPNP_RESULT_INVALID_RESPONSE = 21 ---无效响应。
UPNP_RESULT_INVALID_PARAM = 22 ---参数无效。
UPNP_RESULT_HTTP_ERROR = 23 ---HTTP错误。
UPNP_RESULT_SOCKET_ERROR = 24 ---插座错误。
UPNP_RESULT_MEM_ALLOC_ERROR = 25 ---分配内存时出错。
UPNP_RESULT_NO_GATEWAY = 26 ---没有可用的网关。你可能需要打电话 discover 首先,或者发现没有检测到任何有效的IGD(InternetGatewayDevices)。
UPNP_RESULT_NO_DEVICES = 27 ---没有可用的设备。你可能需要打电话 discover 首先,或者发现没有检测到任何有效的 UPNPDevice S
UPNP_RESULT_UNKNOWN_ERROR = 28 ---未知错误。
描述¶
提供UPNP功能以发现 UPNPDevice 在本地网络上执行命令,如管理端口映射(端口转发)和查询本地和远程网络IP地址。请注意,此类上的方法是同步的,并且会阻塞调用线程。
转发特定端口:
const PORT = 7777
var upnp = UPNP.new()
upnp.discover(2000, 2, "InternetGatewayDevice")
upnp.add_port_mapping(port)
要关闭特定端口(例如,在您完成使用后):
upnp.delete_port_mapping(port)
属性描述¶
bool discover_ipv6
违约 |
假 |
设定器 |
设置发现IPv6(值) |
吸气剂 |
是u发现u ipv6() |
如果 true
,ipv6用于 UPNPDevice 发现。
int discover_local_port
违约 |
0 |
设定器 |
设置发现本地端口(值) |
吸气剂 |
获取u发现u本地u端口() |
如果 0
,系统将自动选择用于发现的本地端口。如果 1
,将从源端口1900(与目标端口相同)进行发现。否则,该值将用作端口。
String discover_multicast_if
违约 |
“ |
设定器 |
设置发现多播如果(值) |
吸气剂 |
获取发现组播 |
用于发现的多播接口。如果为空,则使用默认的多播接口。
方法说明¶
void add_device ( UPNPDevice device )
添加给定的 UPNPDevice 找到的设备列表。
int add_port_mapping ( int port, int port_internal=0, String desc="", String proto="UDP", int duration=0 ) const
添加映射以转发外部 port
(介于1和65535之间)在默认网关上(请参见 get_gateway ) internal_port
在给定协议的本地计算机上 proto
(或 TCP
或 UDP
,默认为UDP)。如果该网关设备上已存在给定端口和协议组合的端口映射,则此方法将尝试覆盖它。如果不需要,可以使用 get_gateway 并打电话 add_port_mapping 如果有的话。
如果 internal_port
是 0
(默认值),外部和内部端口都使用相同的端口号 port
价值)。
描述 (desc
)显示在一些路由器uis中,可以用来指出添加了映射的应用程序,映射的寿命可以通过 duration
. 但是,有些路由器与其中一个或两个路由器不兼容,因此请小心使用,并在出现错误时添加回退逻辑,以便在不确定时重试。
见 UPNPResult 对于可能的返回值。
void clear_devices ( )
清除发现的设备列表。
删除默认网关上给定端口和协议组合的端口映射(请参见 get_gateway )如果有的话。 port
必须是介于1和65535之间的有效端口, proto
要么可以 TCP
或 UDP
. 见 UPNPResult 对于可能的返回值。
发现本地 UPNPDevice 清除以前发现的设备列表。
默认情况下,用于IGD(InternetGatewayDevice)类型设备的筛选器,用于管理端口转发。 timeout
是等待响应的时间(毫秒)。 ttl
是时候活下去了;只有当你知道自己在做什么的时候,才碰这个。
见 UPNPResult 对于可能的返回值。
UPNPDevice get_device ( int index ) const
返回 UPNPDevice 在给定的 index
.
int get_device_count ( ) const
返回发现的数目 UPNPDevice S
UPNPDevice get_gateway ( ) const
返回默认网关。这是第一次发现 UPNPDevice 这也是一个有效的IGD(InternetGatewayDevice)。
String query_external_address ( ) const
返回外部 IP 默认网关的地址(请参见 get_gateway )作为字符串。出错时返回空字符串。
void remove_device ( int index )
删除位于的设备 index
从发现的设备列表中。
void set_device ( int index, UPNPDevice device )
将设备设置为 index
从发现的设备列表到 device
.