c 獲取本地ip和外網ip

2021-10-07 14:22:53 字數 1875 閱讀 2931

// ctest.cpp : 此檔案包含 "main" 函式。程式執行將在此處開始並結束。

//#include

#include

#include

#define max_size 1024

#pragma comment(lib, "urlmon.lib")

#pragma comment(lib,"ws2_32.lib")

#include

#include

#define ip "116.21.41.124"

//#define _crt_secure_no_warnings

using

namespace std;

//內網ip

intgetlocalip()

char szhostname[max_path]=;

int nretcode;

nretcode =

gethostname

(szhostname,

sizeof

(szhostname));

char

* lplocalip;

phostent hostinfo;

if(nretcode !=0)

hostinfo =

gethostbyname

(szhostname)

; lplocalip =

inet_ntoa(*

(struct in_addr*

)*hostinfo-

>h_addr_list);if

(szhostname !=

null

)wsacleanup()

;return0;

}//外網ip

static

char

* wip =

newchar

[max_path]

;int

getinternetip()

;//把網頁中讀出的資料放在此處

char chtempip[

128]=;

char chip[64]

=;//最終存放ip在此

//將網頁資料寫入c:\i.ini檔案中

cstring purl =

""; cstring pfilename =

"d:\\a.html"

;// deleteurlcacheentry((lpcwstr)purl);if(

urldownloadtofile(0

, purl, pfilename,0,

null

)== s_ok)

else

file *fp =

fopen

("d:\\a.html"

,"r");

if(fp !=

null

) cout <<

strlen

(buf)

<< endl;

memcpy

(wip, buf,

strlen

(buf)-1

);wip[

strlen

(buf)-1

]=0;

// wip = buf;

printf

("外網ip: %s\n"

, wip)

;remove

("d:\\a.html");

// couninitialize();

return0;

}int

main()

else

system

("pause");

return0;

}

Winform獲取本地IP和外網IP

一.本地ip winform要獲得本地ip,就要想到c 中的 iphostentry 類 好吧,方法如下 引入命名空間 using system.net 實現方法 iphostentry iphost dns.resolve dns.gethostname ipaddress ipaddress i...

linux獲取外網ip

引言 目前獲取ip的方法中,ifconfig和ip獲取函式得到的都是內網ip。有時候需要獲取外網ip,目前通用的做法,是向外部伺服器傳送請求,解析外部伺服器響應,從而得到的自己的外網ip。linux下的 curl可以替我們完成這些工作,當然,不怕麻煩的話,可以自己分析http協議,自己實現以上過程。...

獲取本地IP

bool socketuti getlocalipaddr string stripaddr if gethostname myname,80 socket error return false if thishost gethostbyname myname return false memset...