Kısa cevaplar hayırdır ve kolay değildir.
Linux'ta lsof /proc/net/unix
, UNIX etki alanı yuvalarıyla ilgili bilgileri almaya dayanır . Bu arayüz listeleri bağlı prizler her ama yok değil uç noktaları takip edin. Yani yapabilirsiniz prizler mevcut olduğunu görmek, ancak bunlara bağlı ne göremez. Bu bilgilerin izlendiği bir yerde , izlenmesi gerekir, aksi takdirde soket bağlantıları çalışmaz. Bağlantı bilgilerini almak için henüz bir mekanizma bulamadım.
Koklama sorusu biraz daha ilginç, ama daha az hayal kırıklığı yok. Demek istediğim "kolay değil" demek, gizlice içeri girmek ve bu verileri yakalamak için herhangi bir kanca yok olmasıdır. En yakın analog tcpdump veya Wireshark kullanıyor, her ikisi de ağır kaldırma yapmak için libpcap kullanıyor. Ağ (AF_INET) ve UNIX alanı (AF_UNIX) ikisini de kullanarak oluşturulur iken socket()
işlev çağrısı, hem kullanım connect()
, kullanım hem bağlanmak read()
ve write()
işlem verilerine, farklı çekirdek alt sistemleri tarafından işlenir. Bunun, libpcap'in UNIX etki alanı yuvalarıyla çalışmak üzere tasarlanmadığı talihsiz yan etkisi vardır.
Sorunun biraz daha az loş tarafı var. İçin man sayfasına bir göz atın recv(2)
. Bu, daha düşük seviyeli bir sistem çağrısıdır read()
. recv()
Aranan bir bayrak var MSG_PEEK
. Bu, bir UNIX etki alanı soketinden geçen trafiği koklamanızı sağlar. Yani bu parlak taraf, karanlık taraf, bildiklerime göre, bunu yapmak için tasarlanmış herhangi bir mevcut uygulama yok. Yani bazı geliştirme çabalarına bakıyorsunuz.
Gerçekten orada dilek oldu F'YEAH güzel basit bir cevabı Sorunuzun iki parçasına da.