⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 find_ip.cxx

📁 pwlib源码库
💻 CXX
字号:
//// find_ip.cxx//// When used behind NAT, this finds the IP address of the NAT box.//// Roger Hardiman//#include <ptlib.h>#include <ptclib/http.h>#include <ptclib/html.h>class FindIP : public PProcess{  PCLASSINFO(FindIP, PProcess)  public:    void Main();    BOOL get_ip(PString server_url, PString &ip_address);};PCREATE_PROCESS(FindIP)void FindIP::Main(){  cout << "Find IP - Find the IP address of your NAT box" << endl;  PString ip;  if (get_ip("http://dnscheck.blueyonder.co.uk:888/cgi-bin/checker.pl",ip)) {    cout << ip << endl;  }  if (get_ip("http://checkip.dyndns.org:8245/",ip)) {    cout << ip << endl;  }  if (get_ip("http://checkip.dyndns.org/",ip)) {    cout << ip << endl;  }  if (get_ip("http://www.lawrencegoetz.com/programs/ipinfo/",ip)) {    cout << ip << endl;  }  if (get_ip("http://www.whatismyipaddress.com/",ip)) {    cout << ip << endl;  }  if (get_ip("http://tools.onedown.net/ipaddress",ip)) {    cout << ip << endl;  }}BOOL FindIP::get_ip(PString server_url, PString &ip_address){  cout << "Trying " << server_url << " - " << flush;  BOOL result = FALSE;  PHTTPClient web("webserver");  PString html;  if (web.GetTextDocument(server_url,html)) {    if (!html.IsEmpty()) {      // cout << "The web server returned the data" << endl << html << endl;      // Now parse the HTML and pull out the IP address. Just look      // for anything of the form N.N.N.N where N is an integer.      PRegularExpression regex("[0-9]*[.][0-9]*[.][0-9]*[.][0-9]*");      PINDEX pos,len;      if (html.FindRegEx(regex, pos, len)) {        ip_address = html.Mid(pos,len);        cout << "IP obtained." << endl;        //cout << "Your real IP is " << ip_address << endl;	result = TRUE;      } else {        cout << "No IP address found on page." << endl;      }    } else {      cout << "Page is empty." << endl;    }  } else {    cout << "Could not get page from server: "         << web.GetLastResponseCode() << ' ' << web.GetLastResponseInfo() << endl;  }  return result;}// End of find_ip.cxx

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -