批处理将IP地址转换为二进制形式
这是个副产品。
正文请看批处理设置IP,适用Windows系统
@echo off
setlocal ENABLEDELAYEDEXPANSION
set ip=255.255.255.0
::先将IP的4位数字提取
for /f "delims=. tokens=1,2,3,4" %%a in ("%ip%") do (
::每个数字都转换为二进制数字
for %%i in (%%a %%b %%c %%d) do (
call :Dec2Bin %%i
set ip_bin=!ip_bin!!bin_num!
))
echo.%ip_bin%
pause
:Dec2Bin
set dec_num=%1
set "bin_num="
::十进制转换为二进制数
:Dec2Bin_loop
set /a quotient=%dec_num% / 2
set /a remainder=%dec_num% %% 2
set bin_num=%remainder%%bin_num%
if %quotient% gtr 1 (
set dec_num=%quotient%
goto Dec2Bin_loop
)
if not %quotient% equ 0 set bin_num=%quotient%%bin_num%
if %1 gtr 127 goto :eof
::将二进制数格式化为长度8位
set len=0
:len_loop
call set u=%%bin_num:~!len!,1%%
if not "!u!"=="" (
set /a len+=1
goto len_loop
)
if %len% lss 8 (
set /a _len=8-%len%
for /l %%a in (1 1 !_len!) do set bin_num=0!bin_num!
)
goto :eof