获取本机外网IP 更新到D盘的文件 追500高分
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取本机外网IP 更新到D盘的文件 追500高分相关的知识,希望对你有一定的参考价值。
我要把家里的机器做成CS 服务器 人在学校 由于家里是ADSL 所以IP会改变 现在我想写个 获取本机外网IP 更新到D盘cs.txt 里
注意:cs.txt里面的 文件格式 127.0.0.1 202.202.202.202 27015
前面的127.0.0.1 和后面的27015 端口不用更新
只需要 每分钟检测一次外面IP 如果不是 202.202.202.202 更新他
说的很明白了吧 请高手 写好代码 自己编译一下 如果成功 我追加 300分
注意CS.TXT里面的 文本格式:IP空格IP空格端口(IP IP 27015) 每分钟检测一下中间的IP 如果变了 就更新CS.TXT
请高手 写好代码 自己编译一下 如果成功 我追加 300分 绝不食言 不要有BUG啦 你自己先试试 不要吃内存哦 语言用 VB DELPHI VC 都可以 只要给我源码 我机器上有这三个编程软件
// 控制台程序获取本机外网IP 并更新文件
// Code By PE_luck
// 百度:http://zhidao.baidu.com/question/74236874.html
/*********************************************/
#include <windows.h>
#include <Wininet.h>
#include <stdio.h>
#pragma comment(lib,"Wininet.lib")
void update()
printf("读取IP数据...\n");
HINTERNET hnet= InternetOpen("PE_luck",PRE_CONFIG_INTERNET_ACCESS,NULL,INTERNET_INVALID_PORT_NUMBER,0);
HINTERNET hopen= InternetOpenUrl(hnet,"http://www.ip138.com/ip2city.asp",NULL,0,INTERNET_FLAG_RELOAD,0);
CHAR buff[1024*100]=0;
DWORD dwRead=0;
InternetReadFile(hopen,buff,sizeof(buff),&dwRead);
CHAR *str=new CHAR [dwRead];
memset(str,0,dwRead);
buff[dwRead]=0;
strcpy(str,buff);
int len=strlen(str);
for (int k=0;k<len;k++)
if (str[k]=='[')
break;
k++;
for (int j=0;j<len;j++)
if (str[j]==']')
break;
j++;
char ip[30]=0;
for (int q=0;q<j-k-1;q++)
ip[q]=str[k+q];
FILE *pfile=NULL;
printf("写入IP数据...\n");
pfile=fopen("D:\\CS.txt","w");
char strfile[100]=0;
sprintf(strfile,"%s %s %s","127.0.0.1",ip,"27015");
fwrite(strfile,sizeof(char),strlen(strfile),pfile);
fclose(pfile);
printf("IP:%s...\n",ip);
CloseHandle(hnet);
CloseHandle(hopen);
void CALLBACK TimerProc(
HWND hwnd,
UINT uMsg,
UINT idEvent,
DWORD dwTime )
update();
void main()
printf("已经启动IP更新...每分钟更新一次...\n");
SetTimer(NULL,1,1000*60,(TIMERPROC)TimerProc);
MSG msg;
while (GetMessage(&msg,NULL,0,0))
TranslateMessage(&msg);
DispatchMessage(&msg);
参考技术A 可以尝试一下GetIpAddrTable 这个函数,
参考这两个网址吧,
http://msdn.microsoft.com/en-us/library/aa365949(VS.85).aspx
http://msdn.microsoft.com/en-us/library/aa366309(VS.85).aspx 参考技术B 百度一下“花生壳”。注册一个免费的域名,在CS客户端添加主机时,不要添加IP地址,而是输入你注册的域名和你启用的端口号,中间还有个冒号。
另外,如果你用路由器上网,或者在某个局域网,还需要设置路由器的端口映射。将CS端口映射到你的机器上。 参考技术C 目前我还没发现网上有这种软件。我自己的方法是用域名解析,先去伸请个免费域名,然后挂在服务器上,方便快捷。 参考技术D 吹,不可能,最多只有400分,怎么可能有500分呢????骗子! 第5个回答 2008-11-03 关注
用Linux命令行获取本机外网IP地址
引言:目前获取ip的方法中,ifconfig和ip获取函数得到的都是内网ip。有时候需要获取外网ip,目前通用的做法,是向外部服务器发送请求,解析外部服务器响应,从而得到的自己的外网ip。linux下的 curl可以替我们完成这些工作,当然,不怕麻烦的话,可以自己分析http协议,自己实现以上过程。如果熟悉python的话,那就更简单了,就像我们所知道的,python总是有现成的库函数可供我们调用。一下总结几种获取外网ip的方法,以供查询,资料来源互联网。
$ curl ip.cn
$ curl ifconfig.me (目前已经失效)
$ curl ident.me 又可细分为 v4.ident.me 和 v6.ident.me
$ curl icanhazip.com
$ curl ipecho.net/plain
$ curl whatismyip.akamai.com
$ curl myip.dnsomatic.com
$ curl icanhazip.com
$ curl ip.3322.net
$ curl ip.6655.com/ip.aspx
如果需要返回IP和地区以及运营商的话可以使用:
$ curl cip.cc ------>纯IP的话 $ curl ip.cip.cc (http://www.cip.cc/) 推荐
$ curl ip.6655.com/ip.aspx?area=1
以上是关于获取本机外网IP 更新到D盘的文件 追500高分的主要内容,如果未能解决你的问题,请参考以下文章