Làm thế nào để bạn có được ipaddress và vị trí của mỗi trang web vistor của trang web của bạn thông qua Asp.Net?Nhận ipaddress và vị trí của mỗi người dùng truy cập vào trang web của bạn
Cảm ơn
Làm thế nào để bạn có được ipaddress và vị trí của mỗi trang web vistor của trang web của bạn thông qua Asp.Net?Nhận ipaddress và vị trí của mỗi người dùng truy cập vào trang web của bạn
Cảm ơn
Để có được sử dụng IP của người dùng:
Request.UserHostAddress
Bạn có thể sử dụng webservice này để có được vị trí địa lý của họ. http://iplocationtools.com/ip_location_api.php
chỉ FYI, đó là một tài sản ... không phải là một phương pháp :) –
thx parens gỡ bỏ –
Điều này sẽ không hoạt động nếu bạn đang đứng sau một proxy. Xem câu trả lời của tôi. – Anthony
string VisitorIPAddress = Request.UserHostAddress.ToString();
và dựa trên ipaddress bạn có thể thu hẹp vị trí: find the geographical location of a host
Vâng tài sản sau đây sẽ cho bạn địa chỉ IP của teh khách hàng (hoặc các khách hàng máy chủ proxy)
Request.UserHostAddress
Đối với vị trí, bạn sẽ cần phải sử dụng một số plugin GeoIP/geolocation như MaxMind để tìm ra điều đó.
Để có được IP làm:
Request.UserHostAddress
Và bạn có thể ánh xạ IP đến vị trí bằng cách sử dụng webservice (chậm hơn) hoặc một cơ sở dữ liệu (nhanh hơn) như thế này: http://ip-to-country.webhosting.info/node/view/5
Đó là công nghệ máy chủ bất khả tri, nhưng tôi khuyên bạn nên sử dụng bộ nạp AJAX của Google trên trình tải dữ liệu: http://code.google.com/apis/ajax/documentation/#ClientLocation
Đó là trong Javascript và thậm chí sẽ cung cấp cho bạn thành phố/tiểu bang/quốc gia của người đó (tốt, phải mất một đoán dựa trên địa chỉ IP). Gửi nó trở lại máy chủ và nó có sẵn cho bạn trong ASP.NET hoặc bất cứ điều gì.
Yêu cầu.UserHostAddress sẽ không hoạt động nếu bạn đứng sau proxy. Sử dụng mã này:
public static String GetIPAddress()
{
String ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(ip))
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
else
ip = ip.Split(',')[0];
return ip;
}
Lưu ý rằng HTTP_X_FORWARDED_FOR nên được sử dụng NHƯNG vì nó có thể quay trở lại nhiều địa chỉ IP được phân cách bởi dấu phẩy bạn cần phải sử dụng chức năng Split. Xem this page để biết thêm thông tin.
ý của bạn là gì theo vị trí? –