UPNP

Inherits: Reference < Object

类别: 核心

简要说明

UPNP网络功能。

方法

无效

add_device ( UPNPDevice device )

int

add_port_mapping ( int port, int port_internal=0, String desc="", String proto="UDP", int duration=0 ) const

无效

clear_devices ( )

int

delete_port_mapping ( int port, String proto="UDP" ) const

int

discover ( int timeout=2000, int ttl=2, String device_filter="InternetGatewayDevice" )

UPNPDevice

get_device ( int index ) const

int

get_device_count ( ) const

UPNPDevice

get_gateway ( ) const

String

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

违约

设定器

设置发现多播如果(值)

吸气剂

获取发现组播

用于发现的多播接口。如果为空,则使用默认的多播接口。

方法说明

添加给定的 UPNPDevice 找到的设备列表。

添加映射以转发外部 port (介于1和65535之间)在默认网关上(请参见 get_gatewayinternal_port 在给定协议的本地计算机上 proto (或 TCPUDP ,默认为UDP)。如果该网关设备上已存在给定端口和协议组合的端口映射,则此方法将尝试覆盖它。如果不需要,可以使用 get_gateway 并打电话 add_port_mapping 如果有的话。

如果 internal_port0 (默认值),外部和内部端口都使用相同的端口号 port 价值)。

描述 (desc )显示在一些路由器uis中,可以用来指出添加了映射的应用程序,映射的寿命可以通过 duration . 但是,有些路由器与其中一个或两个路由器不兼容,因此请小心使用,并在出现错误时添加回退逻辑,以便在不确定时重试。

UPNPResult 对于可能的返回值。

  • void clear_devices ( )

清除发现的设备列表。

  • int delete_port_mapping ( int port, String proto="UDP" ) const

删除默认网关上给定端口和协议组合的端口映射(请参见 get_gateway )如果有的话。 port 必须是介于1和65535之间的有效端口, proto 要么可以 TCPUDP . 见 UPNPResult 对于可能的返回值。

  • int discover ( int timeout=2000, int ttl=2, String device_filter="InternetGatewayDevice" )

发现本地 UPNPDevice 清除以前发现的设备列表。

默认情况下,用于IGD(InternetGatewayDevice)类型设备的筛选器,用于管理端口转发。 timeout 是等待响应的时间(毫秒)。 ttl 是时候活下去了;只有当你知道自己在做什么的时候,才碰这个。

UPNPResult 对于可能的返回值。

返回 UPNPDevice 在给定的 index .

  • int get_device_count ( ) const

返回发现的数目 UPNPDevice S

返回默认网关。这是第一次发现 UPNPDevice 这也是一个有效的IGD(InternetGatewayDevice)。

  • String query_external_address ( ) const

返回外部 IP 默认网关的地址(请参见 get_gateway )作为字符串。出错时返回空字符串。

  • void remove_device ( int index )

删除位于的设备 index 从发现的设备列表中。

将设备设置为 index 从发现的设备列表到 device .