powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Вывод в XML
3 сообщений из 3, страница 1 из 1
Вывод в XML
    #38218882
Thatonebro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем! Кто-то может помочь разобраться:
Нужно получить список процессов ОС из под shell, и вывести их в XML, с перечнем открытыми ими портов.
Получилось их вывести: netstat -apn | grep tcp
Сейчас нужно, получается, брать название процесса, смотреть какие порты он открыл, и список этих портов заносить в XML файл. Как-то так:

<PID>xxx
<PORTS>
<PORT1>xxxx</PORT1>
<PORTn>xxxx</PORTn>
</PORTS>
<xxx>....</xxx>
</PID>

Заранее благодарен за любую помощь!
...
Рейтинг: 0 / 0
Вывод в XML
    #38219703
mhx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mhx
Гость
Что-то типа такого
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
#!/usr/bin/perl

use strict;
use warnings;
#use Data::Dumper;

$\ = "\n";
my $list = `netstat -tpn 2> /dev/null`;
my ($line, $processes, @line_elem, $pid, $proc, $port);
while ($list =~ /^(tcp.*?)$/gm)
{
    $line = $1;
    @line_elem = split /\s+/, $line;
    next if $line_elem[6] eq '-';
    ($pid, $proc) = split /\//, $line_elem[6];
    $port = (split /:/, $line_elem[3])[1];
    unless (defined $processes->{$pid}[$port])
    {
        push @{$processes->{$pid}}, $port;
    }
}

# XML
my $xml = '<NETSTAT>';
for $pid (keys %$processes)
{
    $xml .= "<PID pid='$pid'><PORTS>";
    my $i = 1;
    for $port (@{$processes->{$pid}})
    {
        $xml .= "<PORT$i>" . $port . "</PORT$i>";
        $i++;
    }
    $xml .= '</PORTS></PID>';
}
$xml .= '</NETSTAT>';
print $xml;


Вывод типа:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<NETSTAT>
  <PID pid="2252">
    <PORTS>
      <PORT1>54836</PORT1>
    </PORTS>
  </PID>
  <PID pid="2320">
    <PORTS>
      <PORT1>52635</PORT1>
      <PORT2>52527</PORT2>
    </PORTS>
  </PID>
  <PID pid="1313">
    <PORTS>
      <PORT1>57753</PORT1>
    </PORTS>
  </PID>
</NETSTAT>
...
Рейтинг: 0 / 0
Вывод в XML
    #38220034
Thatonebro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mhx,
Вот это да!! Не ожидал, что так сложно будет выглядеть готовый результат!
Огромное спасибо за потраченное время!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Вывод в XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]