最近在做一个功能 , 就是用bat获取局域网内所有在线Ip地址 ,然后需要对应这些Ip地址修改数据库 , 怎么用winform获取bat获取的IP地址?这个是我找的bat 比如说网段是9的Ip@echo off&title 扫描MAC,IP,计算机名&color a&mode con: cols=60 lines=22
setlocal enabledelayedexpansion
:: iqp -> 内网IP的前3位,ip1 -> 起始ip,ip2 -> 结束ip
set ipq=192.168.9
set /a ip1=1
set /a ip2=255
set /a con=0
set /a contotal=%ip2%-%ip1%+1
for /l %%i in (!ip1!,1,!ip2!) do (
        set ip=!ipq!.%%i
        echo 扫描!ip!
        ping !ip! -n 1 -w 1 >nul
        if !errorlevel! equ 0 (
                for /f "tokens=1" %%j in ('nbtstat -a !ip! ^| find /i "UNIQUE" ^| find /i "00"') do set pcname=%%j
                for /f "tokens=4 delims=* " %%j in ('nbtstat -a !ip! ^| find /i "MAC Address"') do set mac=%%j
                echo !ip!>>info.txt
                set /a con=!con!+1
        )
)我把获取到的Ip导入到info的文本文档里面 , 有没有更好的办法直接从bat获取IP在自动修改数据库  而不用导入到文本文档这个过程 ?
bat获取值自动

解决方案 »

  1.   

    貌似这种方法已经不错了,要不然你还得读取整个命令行输出的内容然后还要提取,现在这样只需要关注结果info.txt你从bat里面获取ip后可以继续去读取info.txt的内容,然后进行数据库的操作。
      

  2.   

    自己写一个扫描网段的程序,做成dll供主程序调用
      

  3.   

    我是想能不能扫描到一个IP就马上对应这个Ip去修改 ,