2015-06-02 61 views
1

我想要做的是生成一个随机ip,ping它,然后,如果ip作为一个有效的ip返回,我希望它发送ip给一个新的记事本。这是我迄今为止...如何从ping中获得一个随机生成的ip

:Start 
@set /a a=(%random% * 99/32768 + 1) 
@set /a b=(%random% * 999/32768 + 1) 
@set /a c=(%random% * 999/32768 + 1) 
@set /a d=(%random% * 9/32768 + 1) 
@set e=%a%.%b%.%c%.%d% 
PING %e% 
GOTO Start 

我想使它把它只是ping通的IP,并且如果它回来有效的,把它放在一个记事本。谢谢!我也希望这能够重复。 如果你知道如何正确地做到这一点,请留下评论!

+0

最可靠的方法是在'ping's输出中搜索'TTL'。所以'ping%a%。%b%。%c%。%d%| find“TTL”&& echo%a%。%b%。%c%。%d%is >> running.txt' should work 。 '&&'作为“如果先前的命令成功了,那么......” – Stephan

+0

@Stephan,最好搜索'TTL =',否则你可以得到一个'TTL'过期的错误并且认为它是一个有效的响应。 –

+0

根据你想要达到的目标,nmap的ping扫描功能也可能是一个解决方案。 –

回答

1
@echo off 
    setlocal enableextensions enabledelayedexpansion 

    for /l %%a in (0) do (
     set /a "A=!random! %% 255",^
       "B=!random! %% 255",^
       "C=!random! %% 255",^
       "D=!random! %% 255" 

     ping -w 1000 -n 1 "!A!.!B!.!C!.!D!" | find "TTL=" > nul && (
      >>"online.txt" echo !A!.!B!.!C!.!D! 
     ) 
    ) 
相关问题