使用uPnP在路由器上映射端口
摘要:
使用uPnP方式在TP-Link上映射端口,配合WCF定时发送动态拨号IP实现远程访问与管理。
需求:
A客户使用拨号上网,IP经常变,有套系统刚部署经常要连过去更新程序与数据库,每次叫A总QQ远程相当不便,
当然直接在路由器上建立端口映射那是最方便,但是A总是刚伤人A企业的总经理,A企业的A网管对新上的系统有抵触(内中缘于大家都懂),
于是乎只能另辟蹊径,好在发现该企业http://192.168.1.1 可以访问到,并且是传说中的TP-Link,当然密码是拿不到地。
过程:
首先想到的是mgen兄的一片文章( http://www.cnblogs.com/mgen/archive/2013/02/03/2890987.html)
下载代码后运行报upnpnat.StaticPortMappingCollection;这句引用为空,检测发现是未开启xp系统的upnp,于是俺资料去开启
结果发现根本没装组件,安装组件时有发现没光盘---都是ghost版的,这年头那来的XP安装盘啊.
纠结中想到,你路由器上的端口映射为什么要电脑上装组件呢,于是在google C# upnp实现端口映射,果然找到2篇相关资料,发现在路由器上添加映射只需要调用路由器的ipc接口,调用是基于http的soap操作,到这里总算不用找xp安装盘了,遗憾的是那两篇资料下载的代码不能执行通过。
不过思路是有了,登录自家的路由器打开uPnP菜单,华丽的发现PPLive已经神奇般的映射4条记录,禁用uPnp,过一会再次打开UPnP,发现PPLive总能再我开启uPnP后顽强的添加一条TCP一条UDP映射^_^,到这里事情就简单了。
打开俺的HttP Analyzer ,一跟踪,SOAPAction:....AddProtMapping就呈现在眼前,于是马上打开VS2010写下
WebClient wc=new WebClient();wc.Headers.Add("User-Agent", "OS/version, UPnP/1.0, MiniUPnPc/version");wc.Headers.Add("SOAPAction", @"""urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping""");wc.Headers.Add("Content-Type", "text/xml");var url=string.Format("http://192.168.1.1:1900/ipc",firewallAddress);byte[] data=Encoding.Default.GetBytes(xml);wc.UploadData(url, "POST", data);MessageBox.Show("zhong bu zhong ???")
执行完毕刷新路由器中的uPnP列表,果然一条本机3389端口到外网26691的TCP 映射成功添加.....
程序截图:
端口问题解决了,接下来就是使用WCF动态发送拨号获取的IP了,这个就比较简单,俺自己有个网站,租用了空间,在上面放个WCF服务页,客户电脑上安装个小程序定时请求下指定页面,就可以获取客户的公网IP了,WCF中代码入下
public string RegIp(string clientNo)
{
var properties = OperationContext.Current.IncomingMessageProperties;
var endPoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
var ip= endPoint.Address;
..................
WCF部分代码到:http://www.cnblogs.com/wdfrog/archive/2013/04/12/3016184.html下载
上面那个端口映射程序的代码需要的留下Email,回家统一发个^_^!
转载于:https://www.cnblogs.com/wdfrog/archive/2013/04/15/3021892.html
使用uPnP在路由器上映射端口相关推荐
- 如何在路由器上做端口映射
假设现在外网有一台ADSL直接拨号上网的电脑,所获得的是公网IP.然后它想访问局域网内的电脑上面的网站,那么就需要在路由器上做端口映射.在路由器上做端口映射的具体规则是:将所有发向自己端口的数据,都转 ...
- 不在路由器上做端口映射,如何访问局域网内网站
假设现在外网有一台ADSL直接拨号上网的电脑,所获得的是公网IP.然后它想访问局域网内的电脑上面的网站,那么就需要在路由器上做端口映射.在路由器上做端口映射的具体规则是:将所有发向自己端口的数据,都转 ...
- 端口映射的作用?如何在路由器上做端口映射
一.端口映射作用 路由器中设置端口映射的主要作用,就是让Internet上的其他用户,可以访问你路由器下面电脑中的数据(软件.文件). 当家里的电脑使用路由器上网后,在Internet下的其它电脑.手 ...
- 路由器上端口转发_如何在路由器上转发端口
路由器上端口转发 Although modern routers handle most functions automatically, some applications will require ...
- 光猫+路由器如何映射端口
https://bbs.csdn.net/topics/391053743 家里网络结构如下图所示: 我想将公网IP的60000端口映射到192.168.10.100上. 目前已试过以下方法: 1. ...
- 各品牌路由器更改设置端口映射实现外网访问内网点(如:OA)的方法
各品牌路由器更改设置端口映射实现外网访问内网点晴OA的方法 先在OA服务器的IIS中增加OA访问端口:/mis/bbs/showbbs.asp?id=8178 下面假设已经在IIS中增加了一个访问点 ...
- 【JD资讯】什么是端口映射?路由器如何设置端口映射?
[JD资讯]什么是端口映射?路由器如何设置端口映射? 不少朋友问到什么是端口端射?在项目中我们经常会遇到,这个功能也是非常实用的,可以解决一些远程控制访问,很多朋友对这个设置一直都了解不多.那么如何设 ...
- 关于TP-LINK宽带路由器上的“转发规则”功能用途及设置办法
关于TP-LINK宽带路由器上的"转发规则"功能用途及设置办法 现在TP-LINK的家用宽带路由器由于价格便宜,性能也还过的去,市场占有率相当高,TP-LINK的家用路由器里有项功 ...
- 宽带路由器上的“转发规则”功能用途及设置办法 -- LAN与WAN通信的IP转换
wo zhuan zai de zuo zhe mei you zhu ming zhuan zai di zhi 现在TP-LINK的家用宽带路由器由于价格便宜,性能也还过的去,市场占有率相当高,T ...
最新文章
- 可见的轮廓线用虚线绘制_为什么你用SketchUp没有别人“快”?
- php+json对象格式,PHP 创建对象来输出 JSON 格式
- P1912-[NOI2009]诗人小G【四边形不等式,单调队列】
- eclipse中查看某个方法(函数)被谁调用
- 美国款游戏计算机,美国一程序员设计计算机游戏 悼念早逝爱子(图)
- 二级省市联动下拉菜单
- linux多进程介绍和示例
- MySql Workbench常用快捷键修改MySqlWorkBench快捷键
- postgresql查看表的创建者和表的权限
- 打破多项存储世界记录,宏杉科技表示很淡定
- 小象机器学习(邹博老师)学习笔记
- 蓝桥ROS机器人之CoppeliaSim_Edu_V4_2_0
- R语言使用survival包的Surv函数创建生存对象、建立Cox回归模型(包含所有协变量)比较不同治疗方法生存率的差异、使用predict函数对cox模型进行新数据的预测和推理(预测死亡风险)
- 免费翻译英文文献自动生成PDF双语文档小技巧
- Vue生命周期,mounted,destory,beforedestory,updated,
- jsp text边框_CSS设置DIV边框实例
- esp32cam.cpp:30:3: error: ‘camera_sensor_info_t’ was not declared in this scope camera_sensor_info_t
- 网站建设学习(二)---内网穿透
- 数据字典模板_C++ 模板元编程:一种屠龙之技
- <C语言>如何使用C语言代码打印“心形”图案?
热门文章
- 组会 | RELAXLOSS: DEFENDING MEMBERSHIP INFERENCE ATTACKS WITHOUT LOSING UTILITY
- Spring Cloud 五大组件
- 同花顺模拟炒股软件 v8.40.29 官方版
- 微信小程序weui-form表单的使用
- dataframe两个表合并_Spark实战第二版(涵盖Spark3.0)第三章 宏伟的角色dataframe
- Ribo-seq的下游分析方法1-ORFquant以及RiboQC
- 武魂优化游戏引擎 视觉效果全新进化
- linux学习计划书
- 王宝强代言计算机学校,《破晓屠龙》王宝强代言传奇游戏电脑手机都能玩
- i5-8500 搭配 RTX3090 算不算奇葩