iT邦幫忙

1

如何用指令自動偵測有插網線的網卡IP

  • 分享至 

  • xImage

如題,小弟我已會用cmd指令修改IP了
但比較困擾的是,我的電腦有兩張網卡
一個有插線,另一個沒用到
所以每次需要用指令先顯示所有網卡
再依照識別碼去修改IP
請問有沒有甚麼指令可以自動選擇有插線的網卡去做修改呢
cmd 或是 powershell 都可以,希望有懂得大大可以幫幫忙!謝謝

lidichu iT邦新手 5 級 ‧ 2024-11-11 09:17:22 檢舉
PowerShell 腳本
這段腳本會自動檢測所有已插線的有線網卡,並根據需要設置新的 IP 地址。
powershell
# 獲取所有狀態為 Up 且媒介類型為 Ethernet 的網卡
$nic = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' -and $_.MediaType -eq 'Ethernet' }

if ($nic) {
# 輸出選擇的有線網卡名稱
Write-Host "選擇的有線網卡: $($nic.Name)"

# 設定新的 IP 地址、子網掩碼和閘道器(根據需要修改)
$ipAddress = "192.168.1.100" # 替換為你想要的 IP 地址
$subnetMask = "255.255.255.0" # 替換為你想要的子網掩碼
$gateway = "192.168.1.1" # 替換為你的閘道器地址

# 修改 IP 配置
New-NetIPAddress -InterfaceAlias $nic.Name -IPAddress $ipAddress -PrefixLength 24 -DefaultGateway $gateway
} else {
Write-Host "未發現有插線的網卡。"
}


Get-NetAdapter 命令列出所有網卡,並使用 Where-Object 過濾出狀態為 Up 且媒介類型為 Ethernet 的網卡。
設置 IP 地址:
使用 New-NetIPAddress 命令來設置新的 IP 地址、子網掩碼和默認閘道器。
運行腳本:
將上述代碼複製到 PowerShell 中執行,即可自動選擇有插線的網卡並修改其 IP 設定。
這樣,你就不需要每次手動查找網卡識別碼,腳本會自動處理這一過程。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
Kailis
iT邦研究生 1 級 ‧ 2024-11-09 10:13:12

好奇問, 你這改ip需求是什麼? 用dhcp 綁定有線網卡配發固定ip 不行嗎?


另外以下為chatgpt 回覆, 供參

方案 1:自動選擇有插線的網卡並修改 IP(PowerShell)
這個 PowerShell 腳本會自動搜尋所有已經插線的網卡(Ethernet 類型)並進行 IP 設定。

獲取所有網卡資訊,過濾出有線網卡(Ethernet)並且已連接的網卡

$nic = Get-NetAdapter | Where-Object { $_.Status -eq 'Up' -and $_.MediaType -eq 'Ethernet' }

檢查是否找到有插線的網卡

if ($nic) {
    # 輸出網卡名稱,供參考
    Write-Host "選擇的有線網卡: $($nic.Name)"

    
    # 設定新的 IP 地址、子網掩碼和閘道器(根據需要修改)
    $ipAddress = "192.168.1.100"
    $subnetMask = "255.255.255.0"
    $gateway = "192.168.1.1"

    # 修改 IP 配置
    New-NetIPAddress -InterfaceAlias $nic.Name -IPAddress $ipAddress -PrefixLength 24 -DefaultGateway $gateway
} else {
    Write-Host "未發現有插線的網卡。"
}

說明:
Get-NetAdapter:這個命令會列出所有網卡的詳細信息。
Where-Object { $.Status -eq 'Up' -and $.MediaType -eq 'Ethernet' }:過濾條件是網卡狀態為 Up 且媒介類型為 Ethernet,即找出當前連接並且是有線網路的網卡。
New-NetIPAddress:用來設置網卡的 IP 地址、子網掩碼和默認閘道。
這樣的腳本會自動選擇有插線的有線網卡進行配置,並忽略無線網卡。

方案 2:僅選擇 Ethernet 網卡並修改 IP 配置
如果你確定只有一張 Ethernet 網卡需要修改 IP,可以使用以下更簡單的腳本:

獲取所有網卡資訊,過濾出有線網卡(Ethernet)

$nic = Get-NetAdapter | Where-Object { $_.MediaType -eq 'Ethernet' }

檢查是否找到有線網卡

if ($nic) {
    # 輸出網卡名稱,供參考
    Write-Host "選擇的有線網卡: $($nic.Name)"
# 設定新的 IP 地址、子網掩碼和閘道器(根據需要修改)
$ipAddress = "192.168.1.100"
$subnetMask = "255.255.255.0"
$gateway = "192.168.1.1"

# 修改 IP 配置
New-NetIPAddress -InterfaceAlias $nic.Name -IPAddress $ipAddress -PrefixLength 24 -DefaultGateway $gateway
} else {
Write-Host "未發現有插線的網卡。"
}

補充:
MediaType 是用來區分網卡類型的屬性,Ethernet 代表有線網卡,Wireless 代表無線網卡。
Status 為 Up 代表網卡處於運行狀態,能夠發送和接收資料。
總結:
以上兩種方法,無論是根據 狀態 (Status) 還是 網卡類型 (MediaType),都能幫助你自動選擇已插線的網卡進行 IP 設定。你可以根據需求選擇其中一種來實現自動配置。

看更多先前的回應...收起先前的回應...
jeffeux iT邦新手 4 級 ‧ 2024-11-10 08:37:15 檢舉

可能是 SurfShark VPN 吧? 🤣

ez34567 iT邦新手 5 級 ‧ 2024-11-11 13:32:11 檢舉

Kailis抱歉之前沒辦法回應,我是某公司的駐點人員,該公司電腦有網域,若網路介面卡只顯示"網路"而非網域就需要改一次IP使其顯示網域,而若需要改IP就需要換帳號才行,所以我寫了一個批次檔方便我直接修改IP,如下。而詢問到的powershell辦法可以讓我省去第一步
![https://ithelp.ithome.com.tw/upload/images/20241111/20170481t8P5kdJZLz.png

ez34567
"該公司電腦有網域,若網路介面卡只顯示"網路"而非網域就需要改一次IP使其顯示網域"
這是個問題,有網域的環境會出現這樣的問題,用改IP的方式處理有點扯蛋
網路環境有問題不去解決,靠著改IP來處理,本末倒置,個人猜環境內有非法的DHCP ( AP、分享器等等)
正確該處理這些非法設備,不是靠指令檔來逐台粉飾

ez34567 iT邦新手 5 級 ‧ 2024-11-12 12:35:51 檢舉

窮嘶發發發我沒有這方面知識,甚至只是遇到這個問題從我能做的處理去下手,如果我想了解這種問題的發生原因跟解決辦法能去哪裡獲取呢/images/emoticon/emoticon16.gif

我要發表回答

立即登入回答