2012-01-04 3 views
1

В большинстве дистрибутивов Linux мне удалось перечислить все соединения tcp путем чтения/proc/net/tcp, но это не существует на Solaris, есть ли файл, который i может читать tcp-соединения из Solaris 11?/proc/net/tcp Alternative Under Solaris 11

спасибо.

EDIT: забыли упомянуть, что я кодирую в c.

+1

(В Linux, вы должны использовать 'сс -t' перечислить им PROCFS интерфейс. только там из-за криков сограждан, но он застрял в прошлом уже более 10 лет.) –

ответ

0

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

+0

им писать свой собственный код, извините, если я не указал, что в вопросе – killercode

4

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

важные детали mibopen, который открывает /dev/arp и толкает модуль tcp 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

я посмотрел на него уже, я просто не мог понять, что происходит там или как это работает, но это не похоже на Linux. – killercode

+0

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