• 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

Lấy địa chỉ IP và Subnet Mask

Các thủ thuật về hệ thống, thư mục, tập tin và mạng
Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi truongphu » CN 19/10/2008 4:33 am

Thủ thuật: Lấy địa chỉ IP và Subnet Mask
Tác giả: truongphu
Mô tả: Lấy địa chỉ DefaultIPGateway, IP và Subnet Mask của máy


Mã: Chọn hết

  1. Private Sub Form_Load()
  2. Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\cimv2")
  3. Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
  4.  
  5. For Each IPConfig In IPConfigSet
  6.     If Not IsNull(IPConfig.IPAddress) Then
  7.         For i = LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
  8.             MsgBox "DefaultIPGateway: " & IPConfig.DefaultIPGateway(i) & vbCr & "IPAdress: " & IPConfig.IPAddress(i) & vbCr & "IPSubnet: " & IPConfig.IPSubnet(i)
  9.         Next
  10.     End If
  11. Next
  12. End Sub


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi truongphu » T.Ba 21/10/2008 2:11 pm

Windows còn cung cấp trình ipconfig có chức năng tương đương. Gõ ipconfig trong Cmd sẽ có nhanh kết quả
Tập tin đính kèm
untitled.JPG
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi truongphu » T.Ba 21/10/2008 2:29 pm

Hoặc đơn giản:

Mã: Chọn hết

  1. MsgBox Winsock1.LocalIp
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
FVS
Thành viên tích cực
Thành viên tích cực
Bài viết: 178
Ngày tham gia: T.Ba 13/05/2008 10:38 am

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi FVS » T.Ba 21/10/2008 2:38 pm

Sao nhà cháu, vào run để chạy IPConfig--> hiện ra được cửa sổ app 16 bit khoảng mấy giây rồi biến mất là sao ạ?
Nhật kí giải thuật - FVS:

Http://GiaiThuat.WordPress.Com

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi truongphu » T.Tư 29/10/2008 8:50 pm

Yêu VB6 chính thống, bạn có thể tham khảo:
Lấy địa chỉ IP, phanthequang4101987
http://www.caulacbovb.com/forum/viewtopic.php?t=3896#p23925
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
ngochoan2006
Guru
Guru
Bài viết: 184
Ngày tham gia: T.Tư 25/10/2006 4:35 pm
Đến từ: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi ngochoan2006 » CN 16/11/2008 10:58 am

Nhân tiện đây bạn cho mình hỏi câu này với !
Có cách nào để change cái địa chỉ IP đó thành địa chỉ khác được không vậy ?
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi truongphu » CN 16/11/2008 12:13 pm

He! hơi bị khó... nhưng mò cũng ra :D

Mã: Chọn hết

  1. Private Sub Form_Load()
  2. Set colNetAdapters = GetObject("winmgmts:").ExecQuery _
  3.     ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
  4.  
  5. strIPAddress = Array("10.0.0.15") ' <-- Thay Ðôi
  6. strSubnetMask = Array("255.0.0.0") ' <-- Thay Ðôi
  7. strGateway = Array("10.0.0.2") ' <-- Thay Ðôi
  8. strGatewaymetric = Array(1)
  9.  
  10. For Each objNetAdapter In colNetAdapters
  11.     errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
  12.     errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
  13. Next
  14. MsgBox "Ðã Thay Ðôi Ðia chi IP"
  15. a = Shell("Cmd /K " & "ipconfig", 1) ' <-- Kiêm Tra Thay Ðôi
  16. End
  17. End Sub

Ghi chú: Dòng code 2 y choang các dòng code ở bài 1 nhưng viết lại cho gọn (học TTD)
WMI muôn năm!!
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
ngochoan2006
Guru
Guru
Bài viết: 184
Ngày tham gia: T.Tư 25/10/2006 4:35 pm
Đến từ: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi ngochoan2006 » CN 16/11/2008 10:06 pm

OK !
Nếu dùng code trên của bạn cũng có khả năng thay đổi lại Ip của Card đó, tuy nhiên sau khi thay đổi song nó trở thành dạng " Manually config..." mất rùi mà đã là manually thì hơi khó sài !
Yêu cầu cao hơn :
+ Thay đổi được địa chỉ IP trong chương trình với điều kiện là IP nhập từ bàn phím hoặc chọn trong Listbox ( Combo box ).
+ Sau khi thay đổi song thì IP của Network phải là ở dạng Auto ( Assigned by DHCP )


Làm được vậy thì quá Pro luôn, Cái này mình đang nghiên cứu và cũng hơi chuối với nó :((
Mong bác tiếp tục phát huy !
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

Hình đại diện của người dùng
ngochoan2006
Guru
Guru
Bài viết: 184
Ngày tham gia: T.Tư 25/10/2006 4:35 pm
Đến từ: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi ngochoan2006 » CN 16/11/2008 10:13 pm

Vấn đề ở đây tôi đang châm cứu là làm sao có thể thay đổi IP của một máy mà không phải là dạng Manual. Tiếp đến là lấy được danh sách các địa chỉ IP đúng theo qui định đặt IP của hệ thống ( Địa chỉ IP hợp lý )
Tham khảo thêm phần mềm viết bằng VB có khả năng đó tại Đây này
Trích nguyên lý làm việc của nó nhé :

Mã: Chọn hết

  1. This software just writes a value into the windows registry. When the Network Adapter Device is enabled, windows searches for the registry value 'NetworkAddress' in the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1- 08002bE10318}\[ID of NIC e.g. 0001]. If a value is present, windows will use it as MAC address, if not, windows will use the hard coded manufacturer provided MAC address. Simple? Some Network Adapter drivers have this facility built-in. It can be found in the Advance settings tab in the Network Adapter's Device properties in Windows Device Manager.

Dùng thằng Gú gồ tran la te thì như sau :

Mã: Chọn hết

  1. Phần mềm này chỉ cần viết một giá trị vào trong cửa sổ đăng ký. Khi các thiết bị mạng Adapter được kích hoạt, cửa sổ tìm kiếm cho đăng ký giá trị 'NetworkAddress' trong khoá HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Class \ (4D36E972-E325-11CE-BFC1-08002bE10318) \ [ID của Card mạng ví dụ: 0001]. Nếu một giá trị là hiện nay, cửa sổ sẽ sử dụng nó như địa chỉ MAC, nếu không, cửa sổ sẽ sử dụng mã cứng nhà sản xuất cung cấp địa chỉ MAC. Đơn giản? Một số mạng Adapter trình điều khiển này có cơ sở xây dựng-trong. Nó có thể được tìm thấy trong nâng cao cài đặt trong các thẻ mạng Adapter của thiết bị tính trong Windows Device Manager.

( He he kể ra có thằng Gú gồ này cũng tiện ghê nhỉ !!! :P
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi truongphu » T.Hai 17/11/2008 8:48 am

1- Tôi vào nhánh HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\... nhưng chẳng thấy gì!
- Có vô số cấu hình phần cứng với {4D36E972-E325-11CE-BFC1- 08002bE10318}
- trong đó có nhánh Network adapters, bung ra có đến ... 9 thiết bị mạng 1 Đâu mà lắm thế?
Mời xem hình
untitled0.JPG

2- Tôi tìm nhánh

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{1CD45787-B794-487F-AC99-414A4479C570} thì khá hơn: Đủ thông tin về DefaultGateway, IPAddress, SubNetMask.
Lưu ý: vì máy tôi yếu nên tôi đã Disable DHCP; EnableDHCP = 0 và IPAuto... = 0
Với Modem CNet, tôi đã tự khai: DefaultGateway là địa chỉ IP bắt buộc của Modem = 10.0.0.2
SubNetMask đơn giản là 255.0.0.0
và IPAddress là con của IP Modem = 10.0.0.15
Riêng DNS Server tôi chọn Open DNS (quảng cáo dữ lắm) là 208.67.222.222 và phụ là 208.67.220.220
Mời xem hình
untitled.JPG


3- Trở lại với ngochoan2006 yêu cầu đổi IPAddress Auto (nghĩa là các phần khác Windows tự làm)
(tham khảo: http://tmac.technitium.com/tmac/index.html)
- Windows sẽ dò và như đã nói trên, bắt buộc khai DefaultGateway là địa chỉ IP mặc định của Modem
- DNS Server cũng là địa chỉ của Modem!
- Vậy thì chỉ còn IPAddress là tự động thay đổi. SubNetMask không quan trọng lắm, có thể để trị mặc định của Modem
Tôi xin nói về Modem CNet vì tôi chỉ biết nhiêu đó:
10.0.0.2 là địa chỉ CNet nối qua card LAN
10.0.0.3 là địa chỉ CNet nối qua USB, phải cài driver
từ 10.0.0.4 đến 10.0.0.16 thì Modem CNet hổ trợ cho Windows tự dò tìm và tự động khai, nghĩa là trong mạng LAN cùng dùng một modem CNet: Chỉ có thể tự động với 13 máy!
Từ máy thứ 14 trở đi, nếu để windows phục vụ, sẽ có máy không vào Internet được...
Do đó đa số các máy phải khai bằng tay từ số 10.0.0.17 trở lên thì OK

4- Như thế thì trên một máy có IPAddress auto, ta chẳng biết các thông số về DefaultGateway, IPAddress, SubNetMask...
Không sao! Với code của bài "Lấy địa chỉ IP và Subnet Mask" là êm
Và bạn ngochoan2006 yêu cầu thay IPAddress Auto thì bạn chỉ cần thay phần IPAddress, các phần khác: bỏ
và tôi đoan chắc với Technitium MAC Address Changer Version: 5.0 Programmer: Shreyas Zare thì khi bạn nhấn RenewIP thì các thông số trên giao diện vẫn giữ nguyên, chỉ có IPAddress cọng trừ số đuôi chút chút thành... vd 192.168.100.15
Xong ! :D
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
ngochoan2006
Guru
Guru
Bài viết: 184
Ngày tham gia: T.Tư 25/10/2006 4:35 pm
Đến từ: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi ngochoan2006 » T.Hai 17/11/2008 9:04 am

Chính xác là tôi đang cần thay địa chỉ IP của nó mà thôi, không quan tâm đến Gateway vì thằng này khi IP đã Auto thì nó sẽ tự nhận giá trị của mạng hoặc của Model phân phát.
Vấn đề muốn giải quyết là :
+ Trong mạng nội bộ ( Lan ) tôi dùng phần mềm ( hoặc qua Modem ) chặn các IP không được phép vào Net ( ví dụ dải Ip từ 192.168.1.1 ~ 192.168.1.10 ) và từ đó các máy có địa chỉ IP này không thể vào Net được. Nhưng nếu thay đổi địa chỉ IP của các máy trong giải kia thì vào OK với điều kiện là Auto.
Nếu mình set nó Manual thì sẽ trùng với các IP của máy khác, mà ngồi mò làm sao để không trùng thì lâu lém .
Vì thế tôi mới cần thay địa chỉ IP của máy tính làm sao để Auto mới được.
Chức năng RenewIP mà bạn nói trên thực chất là chỉ sử dụng câu lệnh :
IPCONFIG / Renew mà thôi. Không có j đáng bàn. Bạn để ý chức năng change IP đó. Nó liệt kê cho mình 1 danh sách các địa chỉ IP hợp pháp mà windows chấp nhận là tự động đó.
Châm cứu đi nhé !
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

Hình đại diện của người dùng
Fr0z3n
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 51
Ngày tham gia: T.Tư 30/04/2008 7:15 am
Liên hệ:

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi Fr0z3n » T.Tư 19/11/2008 10:22 am

các bác ơi thế có cách nào có thể lấy được địa chỉ IP Address của mạng ko, cái mà ta nhìn thấy đc ở trên whatismyip.com ấy. em đang cần cái này cho cái chatbox của em, có cách nào thì chỉ cho em nhé, thanks các bác

Hình đại diện của người dùng
ngochoan2006
Guru
Guru
Bài viết: 184
Ngày tham gia: T.Tư 25/10/2006 4:35 pm
Đến từ: Phúc Yên - Vĩnh Phúc !
Been thanked: 1 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi ngochoan2006 » T.Hai 24/11/2008 8:58 pm

Thêm 1 phần mềm nữa viết bằng VB có tính năng tương tự này.
Vào đây để tham khảo
Kiến thức là vô hạn!
Hiểu biết của tui thì có hạn !
Nên dừng có ngạc nhiên khi tôi không biết 1+2 =? !

qhhqnavy
Thành viên tích cực
Thành viên tích cực
Bài viết: 102
Ngày tham gia: T.Bảy 26/02/2011 10:45 am
Đến từ: Hải Phòng City

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi qhhqnavy » T.Bảy 19/03/2011 10:16 pm

em dùng VB2010 thì Lấy địa chỉ IP và Subnet Mask làm sao đây bác truongphu?
cám ơn bác nhiều

Hình đại diện của người dùng
tdc
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 413
Ngày tham gia: CN 10/07/2011 2:38 pm
Đến từ: TP.NAM ĐỊNH
Has thanked: 20 time
Been thanked: 20 time

Re: Lấy địa chỉ IP và Subnet Mask

Gửi bàigửi bởi tdc » T.Ba 06/03/2012 8:32 am

em muốn lấy và hiển thị cả địa chỉ DNS server thì code thế nào ạ. em dựa trên code trên của các bác để làm nhưng mà không ra.


Quay về “[VB] Hệ thống - Tập tin - Thư mục và Mạng”

Đ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.1 khách