Cài Đặt IP Máy Tính Bằng Code

Liên hệ QC

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,421
Được thích
4,033
Giới tính
Nam
Mình đang Tìm cách cài đặt IP Máy tính bằng code chạy từ Excel mà chưa Nghỉ ra được .... Tìm trên GPE hoài mà chưa thấy ..... vậy mình muốn hỏi có cách nào Cài đặt IP máy tính theo Hình sau Bằng Code
Bạn nào biết xin chỉ dùmIP.png
 
Mình đang Tìm cách cài đặt IP Máy tính bằng code chạy từ Excel mà chưa Nghỉ ra được .... Tìm trên GPE hoài mà chưa thấy ..... vậy mình muốn hỏi có cách nào Cài đặt IP máy tính theo Hình sau Bằng Code
Bạn nào biết xin chỉ dùmView attachment 180287
Chắc kiểu thế này:
Mã:
Private Sub SetIp(nwName As String, varIp As String, varSm As String, _
                 varGw As String, varDNS1 As String, varDNS2 As String)
  Dim sComm1 As String, sComm2 As String, sComm3 As String, sComm4 As String
  On Error Resume Next
  sComm1 = "netsh interface ip set address name=""" & nwName & """ source=static addr=" & varIp & " mask=" & varSm
  sComm2 = "netsh interface ip set address name=""" & nwName & """ gateway=" & varGw & " gwmetric=0"
  sComm3 = "netsh interface ip set dns name=""" & nwName & """  source=static addr=" & varDNS1
  sComm4 = "netsh interface ip add dns name=""" & nwName & """ addr=" & varDNS2
  With CreateObject("Wscript.Shell")
    .Run "cmd /c " & sComm1, 0, True
    .Run "cmd /c " & sComm2, 0, True
    .Run "cmd /c " & sComm3, 0, True
    .Run "cmd /c " & sComm4, 0, True
  End With
  MsgBox "Finish"
End Sub
Với các đối số đầu vào bạn tự truyền vào, chẳng hạn như hình:

Capture.JPG

Hoặc có thể tạo file .bat với nội dung:
Mã:
Set nwName="Wireless Network Connection"
Set varIp=211.54.133.251
Set varSm=255.255.252.0
Set varGw=211.54.135.253
Set varDNS1=211.54.128.1
Set varDNS2=211.54.135.251

netsh interface ip set address name=%nwName% source=static addr=%varIp%  mask=%varSm%
netsh interface ip set address name=%nwName% gateway=%varGw% gwmetric=0
netsh interface ip set dns name=%nwName% source=static addr=%varDNS1% 
netsh interface ip add dns name=%nwName% addr =%varDNS2%
6 dòng trên cùng bạn tự thiết lập
 
Upvote 0
Chắc kiểu thế này:
Mã:
Private Sub SetIp(nwName As String, varIp As String, varSm As String, _
                 varGw As String, varDNS1 As String, varDNS2 As String)
  Dim sComm1 As String, sComm2 As String, sComm3 As String, sComm4 As String
  On Error Resume Next
  sComm1 = "netsh interface ip set address name=""" & nwName & """ source=static addr=" & varIp & " mask=" & varSm
  sComm2 = "netsh interface ip set address name=""" & nwName & """ gateway=" & varGw & " gwmetric=0"
  sComm3 = "netsh interface ip set dns name=""" & nwName & """  source=static addr=" & varDNS1
  sComm4 = "netsh interface ip add dns name=""" & nwName & """ addr=" & varDNS2
  With CreateObject("Wscript.Shell")
    .Run "cmd /c " & sComm1, 0, True
    .Run "cmd /c " & sComm2, 0, True
    .Run "cmd /c " & sComm3, 0, True
    .Run "cmd /c " & sComm4, 0, True
  End With
  MsgBox "Finish"
End Sub
Với các đối số đầu vào bạn tự truyền vào, chẳng hạn như hình:

View attachment 180289

Hoặc có thể tạo file .bat với nội dung:
Mã:
Set nwName="Wireless Network Connection"
Set varIp=211.54.133.251
Set varSm=255.255.252.0
Set varGw=211.54.135.253
Set varDNS1=211.54.128.1
Set varDNS2=211.54.135.251

netsh interface ip set address name=%nwName% source=static addr=%varIp%  mask=%varSm%
netsh interface ip set address name=%nwName% gateway=%varGw% gwmetric=0
netsh interface ip set dns name=%nwName% source=static addr=%varDNS1%
netsh interface ip add dns name=%nwName% addr =%varDNS2%
6 dòng trên cùng bạn tự thiết lập
Em mới lục trên máy Em có File này chắc Code Anh Viết Sao Em chạy không Thấy được ...hay em làm sai cái gì
Sau khi chạy code xong Em dùng File *.vbs kiểm tra vẫn vậy
 

File đính kèm

  • ChangeIP_Address.xls
    37 KB · Đọc: 2
  • Get IP2.rar
    302 bytes · Đọc: 1
Upvote 0
Em coi trong Registry nhánh Sau nó như hình .... hay phải thay đổi trong Registry Mới Ok được Anh
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\Capture.PNG
 
Upvote 0
Em mới lục trên máy Em có File này chắc Code Anh Viết Sao Em chạy không Thấy được ...hay em làm sai cái gì
Sau khi chạy code xong Em dùng File *.vbs kiểm tra vẫn vậy
Có 2 vấn đề cần phải để ý:
1> Connection Name (có thể không phải là "Wireless Network Connection")
2> RunAs Administrator
Để biết thông tin về Connection Name và nhũng thứ khác, bạn làm như sau:
- Bấm tổ hợp phím Windows + R và gõ cmd ---> Enter
- Gõ lệnh NETSH và Enter
- Gõ tiếp Interface IP Show Config và Enter
Còn liên quan đến vụ chạy RunAs thì chắc bạn biết rồi
 
Upvote 0
Có 2 vấn đề cần phải để ý:
1> Connection Name (có thể không phải là "Wireless Network Connection")
2> RunAs Admintrator
Để biết thông tin về Connection Name và nhũng thứ khác, bạn làm như sau:
- Bấm tổ hợp phím Windows + R và gõ cmd ---> Enter
- Gõ lệnh NETSH và Enter
- Gõ tiếp Interface IP Show Config và Enter
Còn liên quan đến vụ chạy RunAs thì chắc bạn biết rồi
Em mới thử nó ra vầy.... Em sử Dụng Cáp Quang Viettel mm.PNG
 
Upvote 0
Vậy code Em sửa lại khúc nào Anh
Thì sửa tham số truyền nwName đấy, cho nó = "Local Area Connection"
---------------------
Trên máy tôi thì tên là "Wi-Fi". Tôi vừa thử chạy lệnh:
Mã:
Set nwName="Wi-Fi"
Set varIp=192.168.1.15
Set varSm=255.255.255.0
Set varGw=192.168.1.1

netsh interface ip set address name=%nwName% source=static addr=%varIp%  mask=%varSm% gateway=%varGw%

PAUSE
Và đã thành công
(đương nhiên RunAs Administrator)
 
Upvote 0
Thì sửa tham số truyền nwName đấy, cho nó = "Local Area Connection"
---------------------
Trên máy tôi thì tên là "Wi-Fi". Tôi vừa thử chạy lệnh:
Mã:
Set nwName="Wi-Fi"
Set varIp=192.168.1.15
Set varSm=255.255.255.0
Set varGw=192.168.1.1

netsh interface ip set address name=%nwName% source=static addr=%varIp%  mask=%varSm% gateway=%varGw%

PAUSE
Và đã thành công
(đương nhiên RunAs Administrator)
Máy Em cũng vậy chạy thành công Run As ....
Em muốn hỏi có cách nào ta viết code kiểm tra được nếu là "Wi-Fi" thì Set nwName="Wi-Fi" khác thì là Set nwName="Local Area Connection"
Không Anh .............ý Em muốn hỏi viết thành hàm Bao quát nhất xài cho 2 trường hợp đó

Cảm ơn Anh
 
Upvote 0
Máy Em cũng vậy chạy thành công Run As ....
Em muốn hỏi có cách nào ta viết code kiểm tra được nếu là "Wi-Fi" thì Set nwName="Wi-Fi" khác thì là Set nwName="Local Area Connection"
Không Anh .............ý Em muốn hỏi viết thành hàm Bao quát nhất xài cho 2 trường hợp đó

Cảm ơn Anh
Thử cái này được không anh :rolleyes::rolleyes:
PHP:
Sub vidu()
Dim sCmd As String, ConnName As String, strTMP
sCmd = "CMD /C powershell Get-NetIPConfiguration | clip"  
'CreateObject("WScript.Shell").Run sCmd, 0, True '
Shell sCmd, vbHide
strTMP = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
strTMP = Split(strTMP, Chr(13))
For i = LBound(strTMP) To UBound(strTMP)
    If InStr(strTMP(i), ":") Then
        ConnName = Trim(Split(strTMP(i), ":")(1))
        Exit For
    End If
Next i
MsgBox ConnName
End Sub
 
Upvote 0
Thử cái này được không anh :rolleyes::rolleyes:
PHP:
Sub vidu()
Dim sCmd As String, ConnName As String, strTMP
sCmd = "CMD /C powershell Get-NetIPConfiguration | clip" 
'CreateObject("WScript.Shell").Run sCmd, 0, True '
Shell sCmd, vbHide
strTMP = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
strTMP = Split(strTMP, Chr(13))
For i = LBound(strTMP) To UBound(strTMP)
    If InStr(strTMP(i), ":") Then
        ConnName = Trim(Split(strTMP(i), ":")(1))
        Exit For
    End If
Next i
MsgBox ConnName
End Sub
Không được và chạy rất chậm
Bài 12 Anh ndu viết Ok đó nhưng Nó thiếu theo Hình màu vàng Vì chưa viết thêm vào .... Mạnh chưa hiểu chỗ đó lắm không biết có liên quan gì không
nếu chạy File *.bat sau thì nó sẻ thêm vào đó ..... vấn đề là Mạnh muốn nghiên cứu Viết thành code chạy trong Excel cho 2 Trường hợp Sau trong 1 Hàm
1/ Wireless Network Connection
2/ Local Area ConnectionCapture.PNG
 

File đính kèm

  • Set DNS Server.rar
    338 bytes · Đọc: 1
Upvote 0
Hic! Em thử với WScript.Shell thì chậm với shell function thì không chậm :D
Cái sub của em là để lấy Connection Name đang được kết nối mạng.
oh mới thử lại hiểu rồi ....Sao chay hồi nảy chạy chậm ko hiểu
Sub đó lấy được trường hợp 1 hay 2 xong viết thêm Hàm mới Gán nó vào là Ok .... Nhưng code viết sao đây ...???!!!
 
Upvote 0
oh mới thử lại hiểu rồi ....Sao chay hồi nảy chạy chậm ko hiểu
Anh thử lại khúc này xem.
PHP:
Sub vidu()
Dim sCmd As String, ConnName As String, strTMP
Dim pText As String, delpath As String
pText = ThisWorkbook.Path & "\oText.txt"
delpath = "CMD /C DEL /f /q """ & pText & """"
sCmd = "CMD /C powershell Get-NetIPConfiguration > " & pText
Shell delpath, vbHide
Shell sCmd, vbHide
strTMP = CreateObject("Scripting.FileSystemObject").OpenTextFile(pText).ReadAll()
Shell delpath, vbHide
strTMP = Split(strTMP, Chr(13))
For i = LBound(strTMP) To UBound(strTMP)
    If InStr(strTMP(i), ":") Then
        ConnName = Trim(Split(strTMP(i), ":")(1))
        Exit For
    End If
Next i
MsgBox ConnName
End Sub
Em dùng SSD nên cứ chạy 2 lần liên tiếp gần nhau thì 1 lần bị lỗi :D ở dòng strTMP = CreateObject("Scripting.FileSystemObject").OpenTextFile(pText).ReadAll()
Sub đó lấy được trường hợp 1 hay 2
Cứ cái nào đang kết nối thì lấy cái đó á anh.
 
Upvote 0
Anh thử lại khúc này xem.
PHP:
Sub vidu()
Dim sCmd As String, ConnName As String, strTMP
Dim pText As String, delpath As String
pText = ThisWorkbook.Path & "\oText.txt"
delpath = "CMD /C DEL /f /q """ & pText & """"
sCmd = "CMD /C powershell Get-NetIPConfiguration > " & pText
Shell delpath, vbHide
Shell sCmd, vbHide
strTMP = CreateObject("Scripting.FileSystemObject").OpenTextFile(pText).ReadAll()
Shell delpath, vbHide
strTMP = Split(strTMP, Chr(13))
For i = LBound(strTMP) To UBound(strTMP)
    If InStr(strTMP(i), ":") Then
        ConnName = Trim(Split(strTMP(i), ":")(1))
        Exit For
    End If
Next i
MsgBox ConnName
End Sub
Em dùng SSD nên cứ chạy 2 lần liên tiếp gần nhau thì 1 lần bị lỗi :D ở dòng strTMP = CreateObject("Scripting.FileSystemObject").OpenTextFile(pText).ReadAll()

Cứ cái nào đang kết nối thì lấy cái đó á anh.
Chạy lỗi .......... Link sau có các Lệnh liên quan hay Tuy nhiên coi khúc biết khúc ko
https://ss64.com/nt/netsh.html
 
Upvote 0
Web KT
Back
Top Bottom