Thứ ba, ngày 21 tháng 11 năm 2017

Sử dụng Webservice để lấy thông tin từ địa chỉ IP của máy khách ASP.Net C#

Ngày đăng: 10/5/2011, 23:16:9PM | Lượt xem: 6,668
Hot!

Trong bài viết này, tôi sẽ hướng dẫn các bạn sử dụng các API có sẵn tên là WSIP2Country để viết thao tác một công việc đơn giản là lấy thông tin chi tiết về IP của máy khách truy cập vào website của bạn. Nó rất nhẹ và hoàn toàn miễn phí cho mọi người.

Bước 1: Tạo một website mới trong Visual Studio .Net (ví dụ tên là IPToCountry).

 

Bước 2: Nếu bạn sử dụng Visual Studio .Net, sẽ rất dễ dàng để add Web service vào project của bạn bằng cách chọn Web Reference. Mở cửa sổ Solution Explorer và chọn tên website của bạn, sau đó click chuột phải và chọn biểu tượng Add Web Reference.

 

Bước 3: Tại popup hiện ra, các bạn nhập vào URL địa chỉ như sau

http://9kgames.com/WS/WSIP2Country.asmx?WSDL

 

Sau đó nhấn GO, lúc này sẽ có thông báo tìm thấy webservice WS2IP2Country, service này có method GetCountryCode, parameter truyền vào là chuỗi địa chỉ IP và giá trị trả ra là chuỗi viết tắt của các nước gồm 2 ký tự theo tiêu chuẩn ISO 3166.

Để hiểu tiêu chuẩn ISO 3166 là gì, các bạn có thể tham khảo bài viết sau: http://vi.wikipedia.org/wiki/ISO_3166-1_alpha-2

Các bạn để tất cả ở chế độ mặc định mà không thay đổi gì cả.

 

Bước 4: Tại trang .aspx các bạn kéo vào 1 Textbox, 1 Button, 1 Label. Ở bước này tôi muốn các bạn nhập trực tiếp địa chỉ IP vào để test, còn nếu các bạn muốn lấy IP từ máy client thì có thể làm như sau

string ip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

if (ip == null)

{

    ip = Request.ServerVariables["REMOTE_ADDR"];

}

Tại trang code behind các bạn gọi webservice trên bằng cách khai báo

using com.w_9kgames;

Tại sự kiện Button1_Click các bạn chỉ cần gọi phương thức GetCountryCode và truyền địa chỉ IP vào là được.

protected void Button1_Click(object sender, EventArgs e)

{

    WSIP2Country service = new WSIP2Country();

    Label1.Text = service.GetCountryCode(TextBox1.Text); //Lấy địa chỉ IP từ textbox hoặc từ biến ip lấy từ trên

}

 Tới bước này, chúng ta chạy thử và nhập vào một địa chỉ IP (đúng định dạng), sẽ có kết quả như sau

 

Bài viết này mới chỉ dừng lại ở việc lấy được mã Country, các bạn muốn hiển thị chi tiết tên nước thì phải tạo một bảng để lưu mã và tên nước, sau khi lấy được mã bằng cách trên thì truy vấn vào database để lấy tên nước (hoặc hiển thị cờ tùy theo tên nước.v.v, bằng cách lưu thêm trường icon flag) để kết quả hiển thị được đẹp hơn. Bài sau tôi sẽ hướng dẫn các bạn hiển thị chi tiết thông tin về vùng thuộc quốc gia thông qua địa chỉ IP đã lấy được (ví dụ: Hà Nội - Việt Nam,...).


Đoàn Thành Nhân - http://lichsu.vn

Nguồn codeproject
 Chia sẻ qua: 
Hot!
Ý kiến bạn đọc

These items will be permanently deleted and cannot be recovered. Are you sure?

Gallery

image

Maecenas viverra rutrum pulvinar

Maecenas viverra rutrum pulvinar! Aenean vehicula nulla sit amet metus aliquam et malesuada risus aliquet. Vestibulum rhoncus, dolor sit amet venenatis porta, metus purus sagittis nisl, sodales volutpat elit lorem…

Read more

Text Links

Thiết kế logo chuyên nghiệp Insky
DAFABET
W88 w88b.com/dang-ky-tai-khoan-w88
W88
ca do bong da online
Copyright © 2011 - 2012 vietshare.vn by phamkhuong102@gmail.com doanhkisi2315@gmail.com. All rights reserved.