今天檢測本機ip的時候,本來是只需要檢測出來內網ip的,突然對獲取外網ip的方法有了些興趣,就去網上搜了一下。
網上的方法倒是挺一致,連線可以查詢ip的**,然後返回這個網頁的資訊,用正規表示式檢索出來,雖然相當於沒有在本地實現,但是只要能獲取到,結果都是一樣的,我就**加上試了一下,但是,呼叫getresponse()返回:遠端伺服器返回錯誤: (403) 已禁止,這算是怎麼回事?大神們的**都不除錯的嗎?寫完都不看結果的嗎?
string str = getpage("");static
string getpage(string
url)}}
catch
(system.exception e)
finally
}
req.useragent = "hello web";新增之後沒問題了。
然後再說下乙個問題,關於正規表示式的匹配,在獲取到的介面中查詢ip的時候,@"
ip: \[(?[0-9\.]*)\]
",我不知道為什麼要這麼檢索,理論上我需要查詢的只是ip位址,具體這個位址前面加不加ip:之類的東西我完全不需要關心,而且,這個檢測ip的也不對,ip位址的規則是不可能0-9都行的。
完整**如下,測試通過:
string patt = @"((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.)(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|[1-9])";
string url = "
";string str =regex.match(getpage(url), patt).value;
static
string getpage(string
url)}}
catch
(system.exception e)
finally
}
本來挺簡單的乙個功能,查問題查了乙個晚上,大家寫出來的東西,還是最好能保證測試通過吧,穩定性,健壯性,異常什麼的不說,但是總不能一次都成功不了吧。http頭的規範我還是有些疑惑,以後再看吧。
C 獲取本機內網外網IP
c 獲取本機內網外網ip using system.net region 獲取內 外網ip 獲取本地ip位址,優先取內網ip public static string getlocalip 獲取本地ip位址。多個ip public static string getlocalipaddress 獲取...
Window Linux檢視本機外網ip
我們上網用的ip並不一定是本機網絡卡的ip位址,由於公網ip位址稀少,國內絕大多數電腦上網,一般都是通過撥號或者埠對映。多個內網位址對映到乙個公網位址來實現上網的。windows 檢視本地ipipconfiglinux 檢視本地ipifconfig內網ip要訪問外網,需要通過nat network ...
獲取本機IP
獲取本機ip char name 255 gethostname name,sizeof name cstring ip lphostent lphost lphost gethostbyname name in addr ppaddr in addr lphost h addr list in a...