miniupnpc的主要函数介绍
来源:互联网 发布:网络上刷信誉是真的吗 编辑:程序博客网 时间:2024/06/14 09:41
http://blog.163.com/miky_sun/blog/static/336940520105954733836/
1.miniupnpc库主要使用的头文件有
#include "miniwget.h"
#include "miniupnpc.h"
#include "upnpcommands.h"
#include "upnperrors.h"
它使用的lib库是miniupnpc.lib
2.miniupnpc.h使用的函数有
upnpDiscover():主要用来搜索局域网中所有的UPNP设备(注意使用freeUPNPDevlist()释放资源)
UPNP_GetValidIGD():在UPNP列表中查看有效IGD设备
UPNPIGD_IsConnected():判断一个设备是否连接正常
// 查询局域网内所有Upnp设备;按照链表的方式返回
UPNPDev* upnpDiscover()
// 释放upnp设备链表
freeUPNPDevlist(UPNPDev*)
// 从upnp设备表中查询有效地设备;
// @UPNPDev : 设备列表
// @UPNPUrls : 如果返回值非0,UPNPUrls作为传出参数
// @IGDdatas : 如果返回值非0,IGDdatas作为传出参数
// @result : =0没有IGD设备;=1有一个连接;=2有设备但没有连接;=3有UPNP但不是ICG设备
UPNP_GetValidIGD(UPNPDev*, UPNPUrls*, IGDdatas*, ..)
// Used when skipping the discovery process.
UPNP_GetIGDFromUrl()
GetUPNPUrls()
// 判断url是否相连接
// @struct UPNPUrls: 指定的设备
// @struct IGDdatas: 设备的其他信息
// @result : =1连接正常;=0没有连接
UPNPIGD_IsConnected(UPNPUrls*, IGDdatas);
// 释放url资源
FreeUPNPUrls(UPNPUrls*);
// 封装了recv函数
ReceiveData()
// 将内外IP,port在路由器上做一个映射
// @controlURL : IGD设备的路径
// @servicetype: IGD设备类型
// @extPort : 映射出的外网端口
// @inPort : 内网port端口
// @inClient : 内网IP地址
// @desc : 描述信息;通常设置为NULL
// @proto : 该外网端口支持的类型TCP或UDP
// @remoteHost : 该端口限制的IP地址、通常设置为NULL,表示所有IP都能访问
// @result : =0映射成功;非0失败
UPNP_AddPortMapping(char* controlURL, servicetype, extPort, inPort, inClient, desc, proto, remoteHost);
// 删除指定设备、指定映射的端口
// @controlURL : 输入IGD设备的路径
// @servicetype: 输入IGD设备类型
// @extPort : 输入映射出的外网端口
// @proto : 输入该外网端口支持的类型TCP或UDP
// @remoteHost : 输入该端口限制的IP地址、通常设置为NULL,表示所有IP都能访问
// @result : =0成功;非0失败
UPNP_DeletePortMapping(controlURL, servicetype, extPort, proto, remoteHost);
3.对upnp常见的操作
UPNP_GetSpecificPortMappingEntry:根据指定设备和外网端口获得内网信息
UPNP_GetExternalIPAddress:根据指定设备获得外网ip地址
UPNP_GetConnectionTypeInfo:根据指定设备,获取连接类型
// 根据指定的设备、和指定外网端口和通讯类型,获得映射端口
// @controlURL : 输入IGD设备的路径
// @servicetype: 输入IGD设备类型
// @extPort : 输入映射出的外网端口
// @proto : 输入该外网端口支持的类型TCP或UDP
// @inPort : 输出内网port端口
// @inClient : 输出内网IP地址
// @result : =0成功;非0失败
UPNP_GetSpecificPortMappingEntry(controlURL, servicetype, extPort, proto, inClient, inPort);
// 根据指定的设备,获得所有的映射端口
// @controlURL : 输入IGD设备的路径
// @servicetype: 输入IGD设备类型
// @index : 输出映射端口的个数
// @result : =0成功;非0失败
UPNP_GetGenericPortMappingEntry(controlURL, servicetype, ....);
// 根据指定的IGD设备和路径,查询出外网IP
// @controlURL : 输入IGD设备的路径
// @servicetype: 输入IGD设备类型
// @expIp : 输出外网IP地址
// @result : =0成功;非0失败
UPNP_GetExternalIPAddress(controlURL, servicetype, extIp);
// 获得指定设备的状态
// @controlURL : 输入IGD设备的路径
// @servicetype: 输入IGD设备类型
// @status : 输出状态信息
// @uptime :
// @lastconnerr: 输出错误代码
// @result : =0成功;非0失败
UPNP_GetStatusInfo(controlURL, servicetype, status, uptime, lastconnerror);
// 根据指定设备,获取连接类型
// @controlURL : 输入IGD设备的路径
// @servicetype: 输入IGD设备类型
// @connectType: 输出IGD设备的连接类型
// @result : =0成功;非0失败
UPNP_GetConnectionTypeInfo(controlURL, servicetype, connectionType);
// 获得接收和发送的数据包总数、和字节总数
// @controlURL : 输入IGD设备的路径
// @servicetype: 输入IGD设备类型
UPNP_GetTotalBytesSent(controlURL, servicetype);
UPNP_GetTotalBytesReceived(controlURL, servicetype);
UPNP_GetTotalPacketsSent(controlURL, servicetype);
UPNP_GetTotalPacketsReceived(controlURL, servicetype);
- miniupnpc的主要函数介绍
- UPNP库——miniupnpc的主要函数介绍
- list模板类的主要函数介绍
- USB设备主要函数介绍
- Libsvm 三个主要函数介绍
- libpcap的一些主要函数和结构介绍
- libpcap的一些主要函数和结构介绍
- iOS_主要的函数
- Oracle_spatial的主要函数
- Linux-read函数 介绍linux驱动层程序设计的主要函数
- iOS的主要框架介绍
- iOS的主要框架介绍
- iOS的主要框架介绍
- iOS的主要框架介绍
- iOS的主要框架介绍
- iOS的主要框架介绍
- iOS的主要框架介绍
- iOS的主要框架介绍
- 视频: Linux最佳入门教程一
- 软件层的特征
- 数据库插入数据(包括Identity列)
- 解释一下SetItemData
- Applet与javacript通信
- miniupnpc的主要函数介绍
- [python]文件系统监控
- android下提取PPS,SPS
- shell 脚本实现的守护进程
- vi命令大全
- 浅析快速嵌入式MCU设计仿真性能
- Git Stash用法
- 【五一呈献】Java 全能高效 MVC & REST 开发框架 Portal-Basic v3.1.1 正式发布
- iOS 扫描wifi热点那些事儿