プロが教える店舗&オフィスのセキュリティ対策術

職場配置換えでフロア移動が発生。
フロアごとにIPアドレスが振り分けられています。
1Fならば101、2Fならば102、3Fならば103のような形です。
3Fにあった部署が4Fに移動、4Fにあった部署が5Fに移動、5Fにあった部署が3Fに移動。

DOSコマンドで簡単変換できないものか?と思っています。

set floor3f=103.
set floor4f=104.
set floor5f=105.
set ip12=192.168.
set ip4=(現在設定されているIPの第4オクテットのみ)
set ipadr=%ip12%%floor3f%%setip4%

こうすればipadrには「192.168.103.***」となると思います。
この後に
netsh interface ip set add …
でsource=static addr=%ipadr%にすればと思っています。

どうにかして、現在設定されているIPアドレスの第4オクテットのみを入れ込めないものでしょうか?
よろしくお願いいたします。

DOSコマンドでなければこういったのがある。
アプリである。
等もお待ちしております。

A 回答 (3件)

以前MACアドレスを表示するDOSのバッチファイルを作成しました。

これを応用し、”ipconfig”コマンドの結果を利用したIPアドレスの取得方法を以下に記載します。

@echo off
set IP=
for /f "delims=" %%F in ( 'ipconfig ^| find "IP Address"' ) do set IP=%IP% %%F

echo %IP:~45,12%

【詳説】
ipconfig の出力結果から、findで”IP Address”の1行を変数IPに取り込みます。
最後のecho分で、この変数IPの45文字目から12文字を表示しています。

弱点は、第1~3オクテットまでが固定長でないといけないことと、ネットワークインタフェースが複数ある場合は、区別がつきません。
    • good
    • 0
この回答へのお礼

色々な方法があるのですね。
私ももっと物事を柔らかく考えなきゃいけないですね。
「この方法でできないかな?」と、そこだけを見ちゃう…
ありがとうございました。

お礼日時:2011/12/02 17:49

VBScript でやるとこんな感じになります。


(ネットワークアダプタが複数ある場合には対応できていません。)

Get4thOctet.vbs
========================================
strComputerName = "."
Set wmi = GetObject("winmgmts:\\" & strComputerName & "\root\cimv2")
Set items = wmi.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each item in items
For Each address in item.IPAddress
ipAddress = address
Next
Next
octet = Split(ipAddress,".")
'Wscript.Echo octet(3)

Set ws = WScript.CreateObject("WScript.Shell")
Set ue = ws.Environment("User")
ue.Item("setip4")=octet(3)
========================================

バッチからの呼び出し例
@echo off
CScript Get4thOctet.vbs
echo %setip4%
    • good
    • 0
この回答へのお礼

このスクリプト使わせていただきました。
ipAddressの部分も受け渡して
=============
:現在のIPアドレス=192.168.103.***
:変更後のIPアドレス=192.168.104.***
変更してよろしいでしょうか?
=============
といった感じで作り上げました。
ありがとうございました。

お礼日時:2011/12/02 17:47

最終手段は for.

    • good
    • 0
この回答へのお礼

色々な手法ありますよね。
その1つを教えてくださりありがとうございます

お礼日時:2011/12/02 17:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!