2009-04-28 43 views

Trả lời

4

Để 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

+0

chỉ FYI, đó là một tài sản ... không phải là một phương pháp :) –

+0

thx parens gỡ bỏ –

+0

Đ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

0

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 đó.

http://www.maxmind.com/

0

Đó 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ì.

1

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ác vấn đề liên quan