Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - вытянуть информацию из html полученного через curl

Ответить
Настройки темы
PowerShell - вытянуть информацию из html полученного через curl

Старожил


Сообщения: 211
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: Griboed0ff
Дата: 17-09-2021
Доброго всем времени суток. Есть задача, которую надо решить именно через bat. Через curl скачивается страничка и из нее нужно извлечь нужную информацию, на скрине отмечено, что нужно вытянуть мак-адрес, номер телефона, модель и серийный номер. На данный момент батник уже может: узнает какая подсеть на компе, потом сканит диапазон из этой подсети, потом curl скачивает странички с айпишки с данными. А вот далее нужно, чтобы батник мог как-то вытянуть данные со странички и плюс как-то мог сам подставить все странички, которые есть в папке.

Отправлено: 08:26, 16-04-2020

 

Старожил


Сообщения: 211
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
(подставьте правильный ip), это будет тот самый html? »
Да это он

Отправлено: 10:50, 16-04-2020 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6496
Благодарности: 1466

Профиль | Отправить PM | Цитировать


Приведите кусок того, что будет в результате:
Код: Выделить весь код
$report = @()
$ips = 130..190 |% {"192.168.0." + $_}

foreach ($ip in $ips) {
    if (Test-Connection $ip -Count 1 -Quiet) {
    $html = (curl "https://$ip/CGI/Java/Serviceability?adapter=device.statistics.device").rawcontent -replace "<.*?>",";" -split ';+ ' -replace "^.*;"
        $obj = [pscustomobject]@{'MAC-адрес'= $html[-18]
        'Номер телефона'= $html[-16]
        'Серийный номер'= $html[-11]
        'Номер модели'= $html[-10]
        }
    }
$report += $obj
}

$report

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:05, 16-04-2020 | #12


Старожил


Сообщения: 211
Благодарности: 2

Профиль | Отправить PM | Цитировать


выдает ошибку
Цитата DJ Mogarych:
$ips = 130..190 |% {"192.168.0." + $_} »
Подсеть всегда разная, сейчас 10.83.3.0/24, к примеру на другом пк будет 10.80.50.0/24, одинаковость в подсетях только 10.*.*.*/24

Последний раз редактировалось Griboed0ff, 17-09-2021 в 15:32.


Отправлено: 11:28, 16-04-2020 | #13


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6496
Благодарности: 1466

Профиль | Отправить PM | Цитировать


Тогда замените строку
Код: Выделить весь код
$ips = 130..190 |% {"192.168.0." + $_}
на
Код: Выделить весь код
$ips = "10.83.3.1","10.83.3.2"
, где это будет два заведомо правильных IP.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 11:37, 16-04-2020 | #14


Старожил


Сообщения: 211
Благодарности: 2

Профиль | Отправить PM | Цитировать


вписал два реальных ip на которых точно есть нужная html страничка.

Последний раз редактировалось Griboed0ff, 17-09-2021 в 15:32.


Отправлено: 12:11, 16-04-2020 | #15


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6496
Благодарности: 1466

Профиль | Отправить PM | Цитировать


Вставьте в начало скрипта вот этот код:
Код: Выделить весь код
add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
            ServicePoint srvPoint, X509Certificate certificate,
            WebRequest request, int certificateProblem) {
            return true;
        }
    }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:54, 16-04-2020 | #16


Старожил


Сообщения: 211
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Вставьте в начало скрипта вот этот код: »
Отлично, скрипт отработал. Осталось только как-то заставить его собирать инфу с 130 по 190 ip в подсети где запускается скрипт. Так как у нас организация и подсетей под каждый офис много (тысячи).

Последний раз редактировалось Griboed0ff, 17-09-2021 в 15:32.


Отправлено: 13:03, 16-04-2020 | #17


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6496
Благодарности: 1466

Профиль | Отправить PM | Цитировать


Где можно получить IP компов? Есть DNS? Домен? DHCP?

Надо разобраться и найти закономерности строения тех или иных сетей.
Либо, придётся рисовать скрипт для каждой подсети отдельно.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 16-04-2020 в 13:44.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:38, 16-04-2020 | #18


Старожил


Сообщения: 211
Благодарности: 2

Профиль | Отправить PM | Цитировать


можно просто взять ip пк, с которого запускается скрипт, отбросить последнюю цифру и записать в переменную для дальнейшей обработки.
$ips = 130..190 |% {"192.168.0." + $_}, 192.168.0. заменить на переменную с прошлого шага

Отправлено: 13:45, 16-04-2020 | #19


Старожил


Сообщения: 211
Благодарности: 2

Профиль | Отправить PM | Цитировать


в батнике так и было сделано, но проблема, что в ps я не знаю как это сделать.

Отправлено: 14:06, 16-04-2020 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - вытянуть информацию из html полученного через curl

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как получить информацию, не отображаемую в HTML-коде? Apock Вебмастеру 0 26-12-2015 22:11
Имитация браузера через cURL dmit.medv Вебмастеру 0 28-12-2012 18:02
[решено] Вывести информацию из файла через JS MultiMax Вебмастеру 1 31-05-2011 22:58
[решено] Вытянуть содержание HTML тега с помощью регулярных выражений aesir AutoIt 4 28-08-2009 21:22
Как передать в javascript данные массива, полученного из кода на php vagner_HATE Вебмастеру 1 18-06-2009 13:51




 
Переход