Page 1 of 1

Une boucle avec la command PING

Posted: 22 May 2012 10:11
by alid0381
Bonjour,

Voilà je cherche un script qui me permet de copier les adresses IP dans un fichier txt si ils répondent aux PI

Le BUT :

1- Les noms des sites : aaa.com bbb.net ccc.org ...
2- Nom du fichier test.txt
3- ET le résultat dans le formulaire ci-dessous :
xxx.xxx.xxx.xxx:aaa.com:
yyy.yyy.yyy.yyy:bbb.net:
zzz.zzz.zzz.zzz:ccc.org:
...
Merci.

Re: Une boucle avec la command PING

Posted: 22 May 2012 13:04
by aGerman
Sorry, but I don't understand French. I used the google translator to perceive your question. Please ask in English next time (like everybody does in that forum).

Not quite sure but I guess this is what you were talking about:

Code: Select all

@echo off &setlocal
>"test.txt" (
  for %%i in (
    aaa.com
    bbb.net
    ccc.org
  ) do (
    for /f "tokens=2 delims=[]" %%j in (
      'ping -n 1 %%i 2^>nul^|findstr "..*\[[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\]..*"'
    ) do echo %%j:%%i:
  )
)

Regards
aGerman

Re: Une boucle avec la command PING

Posted: 24 May 2012 01:07
by phillid
alid0381, rien de personne parle francais sur le forum, mais je le parle un peu :P
Just to check, is this what you got from your translation, aGerman? (Google Translate is notorious for errors)

alid0381 wrote:Hello,
I'm trying to find a script that lets me to copy the IP addresses in a text file if they match PI

The Request:
1 - The names of the sites: ...
2 - Name of the text file: ...
3 - And the result in the layout just below:
xxx.xxx.xxx.xxx:aaa.com:
yyy.yyy.yyy.yyy:bbb.net:
zzz.zzz.zzz.zzz:ccc.org:

Thanks

Not sure what PI means..
alid0381 ! Est-ce que tu sais comment on dit 'PI' en anglais svp ? :)

Merci
Phillid

Re: Une boucle avec la command PING

Posted: 24 May 2012 10:32
by aGerman
Thanks phillid. That's more or less what I translated. PI "could" be short for par intérim. I assume it means someting like "... if (ping was) successful".

Regards
aGerman

Re: Une boucle avec la command PING

Posted: 30 May 2012 07:13
by alid0381
hhhh...
Thanks to aGerman and phillid
Thanks to the team

There is a mistake : Not 'PI' But 'IP'

I do not speak English
I create a small program to write the IP addresses in a txt file in the form
xxx.xxx.xxx.xxx:aaa.com:

@echo off
mode 14,1&color 1e
set /a a = 254
set /a b = 254
set /a c = 254
set /a d = 250
:aa
IF %a% LEQ 255 (
IF %b% LEQ 255 (
IF %c% LEQ 255 (
IF %d% LEQ 255 (
echo %a%.%b%.%c%.%d%:e:>>"IP.txt"
set /a d = %d% + 1&goto aa
) ELSE (
set /a c =%c% + 1&set /a d = 250&goto aa
)
) ELSE (
set /a b =%b% + 1&set /a c = 254&goto aa
)
) ELSE (
set /a a =%a% + 1&set /a b = 254&goto aa
)
) ELSE (
EXIT
)
But the problème
...%d%:e:

how to create a batch file (*. bat) for each IP address to its site; if it exist!

Exemple
193.52.104.60:forum.ubuntu-fr.org:
74.125.230.196:google.com:
....

Re: Une boucle avec la command PING

Posted: 30 May 2012 07:42
by foxidrive
This is untested: it tests the ping by the IP address, not the domain. Change ping %1 to ping %2 to test the domain name and DNS resolution

Code: Select all

@echo off
type nul>pass.txt
type nul>fail.txt
for /f "tokens=1,2 delims=:" %%a in (IPlist.txt) do call :ping %%a %%b
goto :EOF

:ping
echo testing %1:%2
ping %1|find /i "TTL=">nul
if %errorlevel%==0 >>pass.txt echo %1:%2&echo pass
if %errorlevel%==1 >>fail.txt echo %1:%2&echo        FAIL

Re: Une boucle avec la command PING

Posted: 30 May 2012 08:29
by alid0381
Thanks foxidrive

it's a good idea
But in the txte pass.txt There are :
google.com:

I changed in the line: "if %errorlevel%==0 >>pass.txt echo :%1:%2&echo pass" %1=>>:%1 ( means ) google.com: =>> :google.com:

What is the way to find in the txte pass.txt : 74.125.230.193:google.com:

Re: Une boucle avec la command PING

Posted: 30 May 2012 09:44
by Fawers
The code he wrote is supposed to have both IP and domain name as parameters in order to echo them both.

foxidrive wrote:

Code: Select all

if %errorlevel%==0 >>pass.txt echo %1:%2&echo pass
if %errorlevel%==1 >>fail.txt echo %1:%2&echo        FAIL

%1 and %2 are CL parameters.

Re: Une boucle avec la command PING

Posted: 30 May 2012 11:08
by alid0381
Now
my colleague Fawers

I know the site, that in IPlist.txt
I also can get the IP from the command PING

All of these data supposed.

Re: Une boucle avec la command PING

Posted: 30 May 2012 13:47
by Fawers
Perhaps you didn't understand what I meant?
alid0381 wrote:Now
my colleague Fawers

I know the site, that in IPlist.txt
I also can get the IP from the command PING

All of these data supposed.


alid0381 wrote:But in the txte pass.txt There are :
google.com:

I changed in the line: "if %errorlevel%==0 >>pass.txt echo :%1:%2&echo pass" %1=>>:%1 ( means ) google.com: =>> :google.com:

What is the way to find in the txte pass.txt : 74.125.230.193:google.com:

Fawers wrote:The code he wrote is supposed to have both IP and domain name as parameters in order to echo them both.

foxidrive wrote:

Code: Select all

if %errorlevel%==0 >>pass.txt echo %1:%2&echo pass
if %errorlevel%==1 >>fail.txt echo %1:%2&echo        FAIL

%1 and %2 are CL parameters.


CL Parameters = command line parameters.
If you already have the IP list along with their respective domain names, you just have to run foxi's code with them.

Re: Une boucle avec la command PING

Posted: 30 May 2012 18:08
by foxidrive
alid0381,

Your request was poorly worded - I think what you want to do is to ping a set of domains and get the IP address and put them both in a text file like the following:
Is that right?

Exemple
193.52.104.60:forum.ubuntu-fr.org:
74.125.230.196:google.com:



Try this:

domainlist.txt contains
google.com:
telstra.com:



Code: Select all

@echo off
setlocal enabledelayedexpansion
for /f "delims=:" %%a in (domainlist.txt) do (
echo testing %%a
set domain=%%a:
for /f "tokens=2 delims=[]" %%b in ('ping -n 1 %%a ^|find "["') do set domain=%%b:!domain!
>>"IP.txt" echo !domain!
)

Re: Une boucle avec la command PING

Posted: 01 Jun 2012 04:07
by alid0381
How much you are wonderful and all the team

This is exactly what I want

Thank you Thank you Thank you...