在MFC中 如何获得外网的IP地址 ,不是本机的IP ,我网线的IP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MFC中 如何获得外网的IP地址 ,不是本机的IP ,我网线的IP相关的知识,希望对你有一定的参考价值。
1,IP地址是使用ADSL拨号上网时,由电信服务提供商分配给你的IP地址,通常这种地址称之为“动态地址”,也就是说电脑每次开机都将分配给你新的IP地址,那么如何查看本机IP呢? 首先,打开“开始”菜单——选择“运行”——输入“cmd”——按下“Enter”回车键,这样做可以打开“命令提示符”,在命令提示符中输入“ipconfig”,按下“Enter”回车键;系统给出的结果看下图所示:
2,输入cmd,打开命令提示符
3,在命令提示符中输入:ipconfig 查看本机IP
4,Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
Autoconfiguration IP Address. . . : ***.***.***.*** (这串字符表示DHCP分配的地址,并不是当前本机的公网IP地址)
Subnet Mask. . . . . . . . . . . : 255.255.0.0 (子网掩码)
Default Gateway . . . . . . . . . :
PPP adapter (你的宽带连接名称):
Connection-specific DNS Suffix . :
IP address. . . . . . . . . . . . : ***.***.***.*** (这串字符就是当前本机的IP地址)
Subnet Mask. . . . . . . . . . . : 255.255.255.255 (子网掩码)
Default Gateway . . . . . . . . . : ***.***.***.*** (默认网关) 参考技术A 通过网页获取,比如通过ip138 网站
void CLanChatDlg::GetNetIP()
SetDlgItemText(IDC_NET_IP,"正在获取外网IP");
CString strsource;
CString Address;
CInternetSession mySession(NULL,0);
CHttpFile* myHttpFile=NULL;
Address="http://www.ip138.com/ip2city.asp";//ip138网页
myHttpFile=(CHttpFile*)mySession.OpenURL(Address);//读取网络地址
while(myHttpFile->ReadString(strsource))
//循环读取下载来的网页文本
// AddToLog(strsource);
int begin=0;
begin=strsource.Find("[",0);
if(begin!=-1)//如果找到"[", 则找"]" 中括号内的文本则是 你的外网ip
int end=strsource.Find("]");
m_internetip=strsource.Mid(begin+1,end-begin-1);//提取外网ip
SetDlgItemText(IDC_NET_IP,m_internetip);//在左下角显示外网ip
本回答被提问者采纳 参考技术B 百度输入 IP 你就可以看到了 参考技术C 唉,给你说过了你又问一次.
论自己电脑如何搭建服务器
一. 如何实现外网访问本机
1. 运行本机服务,如:NodeJS跑起来
2. 上一步我们只实现了自己访问,但如何让外网能访问到你机子。有两种情况
(1)你上网没有用路由,运营商单独分给你一个外网IP地址,那你直接可以用你的IP让外网的同学来访问你的网站,我这里启动NodeJs用的是3000端口,所以形式为:XX.XX.XX.XX:3000。那我们怎么知道自己的IP地址,只要在百度搜索“IP查询”,第一个就是。
(2)用了路由器,一个路由器带了好几台电脑,这就需要你去路由管理页面去设置一下,端口映射,让别人访问你们的IP地址时,映射到你的电脑,在浏览器中输入192.168.1.1(以你的路由为准),进入路由管理页面,找到端口映射,把(路由的端口)映射到你(本机的ip+端口),这样外网访问(路由的外网ip+端口)就能找到你的本机地址
二. 为什么设置了端口映射但是访问不了
1. 你能搜索到这里,没猜错的话,你已经百度过这些问题了,或许已经找遍了满地的教程。你想实现路由器端口映射,可是总是无法正常连上。可无论如何按部就班地照做,还是无法成功。甚至曾经一度可以,而最近怎么也不行了
因为——你没有了公网IP。
2. 为什么没有了?
无论是电信、联通、还是移动或铁通,从ADSL升级之后,就已经开始支持了共享公网IP的方式,通过一系列的网络框架,使得无需为每一个单独的用户分配一个IP地址,一是因为IP地址是非常稀缺的,二是为了更高的安全性。并且,对绝大多数宽带用户的绝大多数软件而言,公网IP并不是必须的,于是宽带有了这样的调整。
这样的网络框架,可以简单理解为在你的路由器外,又接了一层路由器,然后外面才是原来的公网环境。这样,按常规理解,需要成功设置端口映射,需要在两层路由器上都要设置,但是,外面那层路由,在电信机房,不开放给用户设置的。
不过,某些省份或某些城市,因为一些遗留问题,还没有实现这样的两层路由的框架,因此还可能存在公网IP,但是,这样的情况不多,当前有测试过的地区(2016年),安徽、福建的电信,一部分是可以的。其他地区,如四川、重庆、北京、浙江、江苏等等大多数省市,都已经没有了。
对于联通、移动、铁通等等网络,他们从基础架构上,就没有对用户开放公网IP服务。倒是老的ADSL,2M-4M带宽以下的那种,用电话线的,可能是支持的。
3. 如何验证这个情况呢?
进入路由管理界面找到路由的ip地址和百度ip地址比对是否一样,如果路由器里显示的地址,与百度里显示的不一样,那么就印证了这个情况。
4. 如何彻底解决?
彻底解决,得从原理说起,路由器让多个内部机器能共享IP,是采用了一个叫做NAT的技术,这也使得通常情况下,里面可以往外连,而外面不能往里连。
如果要外面能连进来,则需要单独设置,如同你在家用路由上做的设置一样,外面那个电信的大路由,也要做一层设置。但这是电信机房的管理范围,用户没有这个权限。
电信也有提供公网IP的服务,不过价格就不是一般水平了,一般10M的光纤,带公网IP,每月价格在1千到2千左右,这个业务,叫做:“专线”,如果确实愿意花这个费用解决问题,可以直接咨询电信开通。
对于普通情况下,想免费或廉价地解决,通常使用这个方法,技术上叫做:“隧道转发”
5. 何为隧道转发
原理是通过一台公网的服务器提供IP地址,让本地客户端预先与它取得连接,通过指定一定的转发规则,将外部请求转发到本地客户端,本地客户端再将请求发往原本需要映射的地址上,而外部连接地址,则使用此服务器提供的IP地址与端口即可。这样的方式,需要在机房额外托管一台服务器,并承担相应的服务器费用。
路由侠就是这样一款软件,由我们来提供服务器,用户只需要下载客户端,即可完成隧道转发。在一定带宽与流量的范围内,是完全免费的。对大流量用户也提供了额外的付费业务。
原文地址:http://bbs.luyouxia.com/thread-339-1-1.html
以上是关于在MFC中 如何获得外网的IP地址 ,不是本机的IP ,我网线的IP的主要内容,如果未能解决你的问题,请参考以下文章