/ proc / net / tcp Альтернативная версия под Solaris 11 - PullRequest
1 голос
/ 04 января 2012

В большинстве дистрибутивов Linux я смог перечислить все tcp-соединения, прочитав / proc / net / tcp, но в Solaris этого нет. Есть ли файл, из которого я могу читать tcp-соединения в Solaris 11? 1001 *

спасибо.

РЕДАКТИРОВАТЬ: забыл упомянуть, что я кодирую в c.

Ответы [ 2 ]

4 голосов
/ 04 января 2012

Если вы пытаетесь переписать netstat, я предлагаю посмотреть на исходный код: https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/cmd-inet/usr.bin/netstat/netstat.c

Важными частями являются mibopen, который открывает /dev/arp и толкает *Модуль 1007 * STREAMS на него и mibget, который фактически запрашивает информацию о соединении.Код немного сложен, поэтому я предлагаю пройтись по коду в отладчике, чтобы понять, как он работает.Ключевые системные вызовы: open, ioctl, putmsg и getmsg.

Если вы просто хотите посмотреть, какие сокеты открыт у процесса, вы можете проверить /proc/PID/fd, как в pfiles: https://hg.java.net/hg/solaris~on-src/file/tip/usr/src/cmd/ptools/pfiles/pfiles.c

0 голосов
/ 04 января 2012

Вы должны использовать netstat -an или pcp

...