Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Помогите со скриптом массового пинга доменов (http://forum.oszone.net/showthread.php?t=341004)

maxload 21-06-2019 13:36 2876325

Помогите со скриптом массового пинга доменов
 
Всем привет, опять мои нубские вопросы, в одной из прошлых тем мне погли с нечто подобным, но теперь нужно немного другое.

Есть txt со списком доменов, нужно пингануть каждый и вынести в отдельный файл результат этого пинга вместе с доменом и его айпи.

Например, есть такой список:

domen1.com
domen2.com
domen3.com
domen4.com
domen5.com

нужно чтобы после пинга получиллся такой тхт с результатами пинга:

domen1.com 11.22.111.22
domen2.com 111.222.111.222
domen3.com no ping
domen4.com no ping
domen5.com 22.111.22.111

где напротив каждого домена будет записан его айпи в случае удачного пинга.



P.S. Если это более сложно в реализации (пинговать и заносить в список все домены), то пойдет результат, где бы просто записывались те домены что пингуются, а те что не пингуются соотвественно просто не записываются в тхт с результатом пинга.

то есть:
domen1.com 11.22.111.22
domen2.com 111.222.111.222
domen5.com 22.111.22.111

domen3.com, domen4.com (и все что не пинганулись) просто пропуск

Charg 21-06-2019 18:41 2876362

Цитата:

Цитата maxload
нужно чтобы после пинга получиллся такой тхт с результатами пинга: »

Результат пинга это успешно доставленный ответ на специфический запрос от хоста (гугли ICMP). Если тебе нужно конвертировать доменные имени в айпи - это результат работы резолвера. При этом у хоста может быть несколько айпи. И то что хост не пингуется - совершенно не означает что домен не доступен. Попробуй пингани russia.com например. На пинги он не отвечает, хотя сайт прекрасно работает.
На павершеле это делается так:
Код:

$infile = "D:\infile.txt"
$outfile = "D:\outfile.txt"
#тут подставляешь свои пути, разумеется
 
$domains = @()
$result = @()
$domains = Get-Content $infile
   
foreach ($i in $domains) {
    $answer = Resolve-DnsName -Name $i -Type A -ErrorAction SilentlyContinue
    if ($null -ne $answer) {
        foreach ($one in $answer) {
            $result += "$($one.Name) $($one.IP4Address)"
        }
    }
    else {
        $result += "$i FAIL"
    }
}
$result | Out-File $outfile -Force

Результат
Скрытый текст

maxload 22-06-2019 00:42 2876385

огромное спасибо тебе за разъяснение!


Время: 06:56.

Время: 06:56.
© OSzone.net 2001-