• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Cách Lấy IP trong winform C#?

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

sorryanhyeuem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 69
Ngày tham gia: T.Hai 22/08/2011 3:51 pm
Has thanked: 2 time
Been thanked: 1 time

Cách Lấy IP trong winform C#?

Gửi bàigửi bởi sorryanhyeuem » T.Năm 16/02/2012 11:09 pm

Có bạn nào biết cách làm thế nào để lấy được IP của máy mình đang sử dụng trong ứng dụng winform, có kết nối mạng LAN không? Ý mình là mỗi máy có IP riêng để nhận dạng người dùng. Thanks!



Hình đại diện của người dùng
ico
Thành viên danh dự
Thành viên danh dự
Bài viết: 193
Ngày tham gia: T.Ba 20/07/2010 9:23 am
Đến từ: https://sites.google.com/site/icowaredownload
Has thanked: 1 time
Been thanked: 23 time
Liên hệ:

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi ico » T.Sáu 17/02/2012 11:39 am

Dim h As System.Net.IPHostEntry = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName)
Me.TextBox1.Text = h.AddressList.GetValue(0).ToString
Copy và Paste là 2 thành tựu hàng đầu thế giới và được các chuyên gia hàng đầu về tin học tin dùng

sorryanhyeuem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 69
Ngày tham gia: T.Hai 22/08/2011 3:51 pm
Has thanked: 2 time
Been thanked: 1 time

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi sorryanhyeuem » T.Sáu 17/02/2012 2:45 pm

mình viết bằng c# bạn ơi. :D

Hình đại diện của người dùng
ico
Thành viên danh dự
Thành viên danh dự
Bài viết: 193
Ngày tham gia: T.Ba 20/07/2010 9:23 am
Đến từ: https://sites.google.com/site/icowaredownload
Has thanked: 1 time
Been thanked: 23 time
Liên hệ:

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi ico » T.Sáu 17/02/2012 5:44 pm

Ừ, sr bạn
System.Net.IPHostEntry h = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName());
this.TextBox1.Text = h.AddressList.GetValue(0).ToString();
Copy và Paste là 2 thành tựu hàng đầu thế giới và được các chuyên gia hàng đầu về tin học tin dùng

sorryanhyeuem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 69
Ngày tham gia: T.Hai 22/08/2011 3:51 pm
Has thanked: 2 time
Been thanked: 1 time

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi sorryanhyeuem » T.Sáu 17/02/2012 9:42 pm

Bạn ơi cho mình hỏi thêm cái nữa, ở dòng " System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()) " khi mình biên dịch xuất hiện lần gạch màu xanh ở dưới đoạn đó, nó nói là sử dụng " GetHostEntry ".

Hình đại diện của người dùng
ico
Thành viên danh dự
Thành viên danh dự
Bài viết: 193
Ngày tham gia: T.Ba 20/07/2010 9:23 am
Đến từ: https://sites.google.com/site/icowaredownload
Has thanked: 1 time
Been thanked: 23 time
Liên hệ:

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi ico » T.Bảy 18/02/2012 11:53 am

ko sao bạn ạ, chương trình vẫn chạy tốt
Copy và Paste là 2 thành tựu hàng đầu thế giới và được các chuyên gia hàng đầu về tin học tin dùng

FlyingFox
Guru
Guru
Bài viết: 809
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi FlyingFox » T.Bảy 18/02/2012 7:50 pm

GetHostByName nó bị obsolete nghĩa là vẫn chạy được tuy nhiên nó chĩ khuyen bạn nên dùng cái mới là GetHostEntry. Nếu dùng cái mới này thì viết lại như sau:
  1. Dim host_IPs() As IPAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList
  2. For Each ip As IPAddress In host_IPs
  3.     If ip.AddressFamily.ToString() = "InterNetwork" Then
  4.         TextBox1.Text = ip.ToString()
  5.         Return
  6.     End If
  7. Next

Hình đại diện của người dùng
ico
Thành viên danh dự
Thành viên danh dự
Bài viết: 193
Ngày tham gia: T.Ba 20/07/2010 9:23 am
Đến từ: https://sites.google.com/site/icowaredownload
Has thanked: 1 time
Been thanked: 23 time
Liên hệ:

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi ico » T.Bảy 18/02/2012 9:26 pm

  1. IPAddress[] host_IPs = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
  2. foreach (IPAddress ip in host_IPs) {
  3.     if (ip.AddressFamily.ToString() == "InterNetwork") {
  4.         TextBox1.Text = ip.ToString();
  5.         return;
  6.     }
  7. }
Copy và Paste là 2 thành tựu hàng đầu thế giới và được các chuyên gia hàng đầu về tin học tin dùng

sorryanhyeuem
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 69
Ngày tham gia: T.Hai 22/08/2011 3:51 pm
Has thanked: 2 time
Been thanked: 1 time

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi sorryanhyeuem » CN 19/02/2012 12:40 am

Cảm ơn bạn rất nhiều bài viết hay lắm. Bạn có thể giải thích cho mình hiểu "InterNetwork" ý nghĩa trong này thế nào không? Thanks !

Hình đại diện của người dùng
dazzlingvit
Guru
Guru
Bài viết: 960
Ngày tham gia: T.Ba 18/01/2011 10:21 am
Đến từ: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 time
Been thanked: 112 time
Liên hệ:

Re: Cách Lấy IP trong winform C#?

Gửi bàigửi bởi dazzlingvit » CN 19/02/2012 1:20 am

@ico: mình nghĩ chỗ AddressFamily bạn không nên so sánh xâu như vậy. AddressFamily có kiểu enum mà, so sánh trực tiếp luôn.
  1. // ...
  2. if (ip.AddressFamily == AddressFamily.InterNetwork) {
  3. // ...
  4.  

@sorryanhyeuem: thông tin về các AddressFamily bạn xem danh sách ở đây: http://msdn.microsoft.com/en-us/library ... amily.aspx
Dazzling V.I.T
Hãy gọi tôi là vịt :)


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.14 khách