Получить все подключенные IP-адреса на машине Linux

Недавно в интервью мне задали вопрос, который я не смог сделать. У кого-нибудь есть решение для этого?

Grab all connected IP´s on the Linux machine
check every connected IP if TCP port 1706 is open

if its open > execute command.  CURL ‘http:// some address ’
Else do nothing.
program will check this every 60 minitsPlattform Linux Ubuntu Server 12. X64 / x32

WAP в C ++

Спасибо!!

-3

Решение

Сделайте скрипт bash.

LOGIC:

использование netstat -natp (отфильтруйте это через awk/sed чтобы получить порты, затем grep это) Затем используйте простой тест, чтобы увидеть, если результат был пустым. Бежать curl если бы это было

Поместите это в работу cron. Простые вещи, правда.

РЕДАКТИРОВАТЬ:

netstat это утилита, которая покажет вам все соединения на вашем компьютере. netstat -natp показывает список программ, которые имеют сокеты tcp на вашем компьютере.

sed а также awk используются для форматирования текста. Вы можете использовать их, чтобы перечислить конкретный столбец.

grep ищет вход, чтобы найти указанную строку.

bash допускает базовую логику и может использоваться, чтобы увидеть, является ли строка пустой.

cron это процесс Linux, который планирует команды для запуска в определенное время.

РЕДАКТИРОВАТЬ № 2:

Вы могли бы опрос /proc/net/tcp, но с тех пор netstat делает это и форматирует это хорошо, зачем?

1

Другие решения

В Linux вы ищите файлы в /proc/net и разобрать это.

Например, TCP-соединения перечислены в /proc/net/tcp

head /proc/net/tcp

покажет что-то вроде этого

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
0: 00000000:0007 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 38148735 1 0000000000000000 100 0 0 10 -1
1: 00000000:1F48 00000000:0000 0A 00000000:00000000 00:00000000 00000000   116        0 38923158 1 0000000000000000 100 0 0 10 -1
2: 00000000:0CEA 00000000:0000 0A 00000000:00000000 00:00000000 00000000   120        0 12364094 1 0000000000000000 100 0 0 10 -1
3: 0100007F:13AD 00000000:0000 0A 00000000:00000000 00:00000000 00000000  1000        0 26454267 1 0000000000000000 100 0 0 10 -1
4: 0100007F:008F 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 5570 1 0000000000000000 100 0 0 10 -1
5: 00000000:0050 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 27328173 1 0000000000000000 100 0 0 10 -1
6: 0100007F:1913 00000000:0000 0A 00000000:00000000 00:00000000 00000000   116        0 38923868 1 0000000000000000 100 0 0 10 -1
7: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 18983193 1 0000000000000000 100 0 0 10 -1
8: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 38681424 1 0000000000000000 100 0 0 10 -1

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

0

По вопросам рекламы [email protected]