• 2

單一網卡可以設定成動態IP與靜態IP同時各有一組嗎?

批次檔原理:
1. 設定自動取得IP
2. 找出指派的IP
3. 設定Static IP
fyi wrote:
批次檔原理:1. 設...(恕刪)


原理是懂,但指令不會用...(需要用到DOS指令?)
單使用netsh指令應該做不到第二點吧?
DIXES wrote:
原理是懂,但指令不會用...(需要用到DOS指令?)

netsh 不就是DOS 指令?

以下批次檔只適用於單一網卡或無線網卡已連接網路, 若有第二有線網卡已取得IP 則可能會出錯, 請根據以下指令輸出結果修正批次檔
ipconfig | find /N ". . :"

此外還需注意DHCP 租約到期時間, 請於租約到期前關機或重新執行批次檔

dhcp2ip.bat
@echo off
cls
echo *** This batch file will query DHCP server and add a second static IP ***
echo .
if %1. == . goto syntax
if not %4. == . goto syntax
set local_ip=%1
set netmask=%2
set adapter=%3
if %2. == . set netmask=255.255.255.0
if %3. == . set adapter=區域連線
echo IP Address. . . . . . . . . . . . : %local_ip%
echo Subnet Mask . . . . . . . . . . . : %netmask%
echo Ethernet adapter. . . . . . . . . : %adapter%
echo .
pause
echo Resetting local IP in order to disable DHCP client...
netsh interface ip set address %adapter% static %local_ip% %netmask%
if errorlevel 1 goto adapter_error
echo Query DHCP server...
netsh interface ip set address %adapter% source=dhcp
rem echo %errorlevel%
if errorlevel 1 goto error
ipconfig /all | find "Lease"
echo .
echo Checking IP...
:check
echo .
ipconfig | find /N ". . :" >%temp%\ipconfig.txt
set addr=
FOR /F "tokens=18 delims=de " %%i IN (%temp%\ipconfig.txt) DO set addr=%%i
if %addr%.==. goto error
set mask=
FOR /F "tokens=18 delims=be " %%i IN (%temp%\ipconfig.txt) DO set mask=%%i
if %mask%.==. goto error
set gateway=
FOR /F "tokens=19 delims=ae " %%i IN (%temp%\ipconfig.txt) DO set gateway=%%i
if %gateway%.==. goto check
echo Setting first static IP...
netsh interface ip set address %adapter% static %addr% %mask% %gateway% 10
if errorlevel 1 goto adapter_error
echo Adding second static IP...
netsh interface ip add address %adapter% %local_ip% %netmask%
if errorlevel 1 goto adapter_error
goto end
:syntax
echo Syntax: %0 {Local IP Address} [Subnet Mask] [Adapter]
echo .
echo Example:
echo %0 192.168.0.5
echo %0 192.168.0.5 255.255.255.0
echo %0 192.168.0.5 255.255.255.0 區域連線
goto end
:adapter_error
echo ********** Command error. **********
goto end
:error
echo ********** DHCP query error. **********
:end
if exist %temp%\ipconfig.txt del %temp%\ipconfig.txt
ipconfig
echo .
pause
DIXES wrote:
動態IP:Cable...(恕刪)


如果可以就加裝一張實體網卡.
fyi wrote:
netsh 不就是D...(恕刪)


ipconfig | find /N ". . :"


請問根據上面指令輸出結果修正批次檔的意思
是指在批次檔裡"手動"更改真實IP&子網路遮罩嗎?
是的話,那就是無法實現"自動"更改嗎?

我netsh是照著網路教學改來用的,並不是真的會用
批次檔已修正, 使用場合電腦經交換器直接連接Cable Modem, 每一台電腦分別指定不同虛擬IP, 例如:

PC1 執行 "dhcp2ip 192.168.0.5"
PC2 執行 "dhcp2ip 192.168.0.6"

預設網路連線為 "區域連線", 預設子網路遮罩為 "255.255.255.0"

不過你在三樓的貼圖顯示 "DHCP Server 192.168.50.10", 代表你測試時並未直接連接Cable Modem, 所以測試結果可能不準確, 如果你再不懂, 那麼小弟也無能為力, 請自行研究吧!
fyi wrote:
批次檔已修正, 使用...(恕刪)


確實是經交換器直接連Cable Modem
DHCP Server是192.168.50.10沒錯

想再請教個問題,可以把"虛擬IP"直接寫在批次檔裡嗎?(如何修改?)
這樣就不用每次手動輸入"dhcp2ip 192.168.0.X"(該批次檔用法有錯還請指正!)

再次感謝您的大力相助!
經實測發現"真實IP"與"虛擬IP"的順序會造成沒有區網的問題(如圖)

圖一:可上網/有區網


圖二:可上網/無區網
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?