簡體   English   中英

獲取公共/外部IP地址,並使用ASP.Net(C#)將其導入數據庫

[英]Obtaining public/external IP Address and importing it into database with ASP.Net (C#)

您好,我正在嘗試使用ASP.Net C#制作一個注冊頁面,到目前為止,對於新手來說,我做的還不錯。 我只是遇到了這個問題,當我嘗試在注冊過程中將用戶的IP地址導入到我的數據庫中時,唯一成功的嘗試就是為數據庫提供一個“ :: 1”值而不是IP。 我在網上搜索了所有內容,但發現的唯一結果是相同的方法,不起作用的方法以及獲得計算機本地IP而不是外部IP的方法。 這是我的代碼:

string ipaddress;
    ipaddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    if (ipaddress == "" || ipaddress == null)
        ipaddress = Request.ServerVariables["REMOTE_ADDR"];

我將“ ipaddress”變量設置為數據庫查詢。 有人可以告訴我什么缺失/錯誤嗎?

“ :: 1”是IPV6中“ localhost”或127.0.0.1的IPV6等效項。 如果運行Windows,這是用於訪問本地計算機數據的常用地址。 如果將軟件部署到不能驅動IPV6的Web服務器,則會看到常規IPV4-地址。

請注意,您應該反轉if語句或使用string.IsNullOrEmpty()以避免NullReferenceException

if (string.IsNullOrEmpty(ipaddress))

有關IPV6的參考,請參閱RFC 4291

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM