用C语言编写程序如何获得外网的IP的地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言编写程序如何获得外网的IP的地址相关的知识,希望对你有一定的参考价值。

//通过ip138网站来查询外网IP的
#include <afxinet.h>
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

参考技术A 百度搜索,直接搜ip,就会显示,,,,所以,可以模拟浏览器做这个搜索,然后解析返回的html

~~~~~~~~~

FTP服务器 在公网用pasv模式访问 提示返回的地址是内网的IP和端口

FTP服务器(server-u), 在公网用被动连接模式访问, 提示返回的地址是内网的IP和端口 。
网络拓扑如下
---internet---防火墙---路由器---FTP服务器
请问该如何设置?!
(备注:公网用主动连接模式能正常访问)

因为你在问题中未提及Serv-U 版本。
只能大概给你说一下。
Serv-U的域设置或者域详细信息里,找到域的监听器。
里面有个pasv ip地址,是填被动模式使用的外网地址或者域名。
填写后可以解决。
参考技术A 做映射啊啊啊 啊啊啊啊啊追问

如果只是做映射 我就不提问了

以上是关于用C语言编写程序如何获得外网的IP的地址的主要内容,如果未能解决你的问题,请参考以下文章

在MFC中 如何获得外网的IP地址 ,不是本机的IP ,我网线的IP

C#如何在页面中获取本机的外网IP地址

如何使用C#语言编写程序通过ip地址找出端口号

怎样用javascript获得外网ip!

请问 C# 如何获取外网IP?

如何在vscode中编写C和C++