Entra

View Full Version : dall'inode al processo


NA01
05-11-2005, 18:56
sempre per lo stesso progetto che sto montando ho bisogno di risalire a un processo partendo dalle voci in /proc/net/tcp.
qui trovo una voce inode, e con quella dovrei riuscire a risalire al processo guardando di nuovo in /proc
cito dall'email:


1. you receive the packet from QUEUE|NFQUEUE and extract ipv4
header
2. you parse /proc/net/udp ou /proc/net/tcp to find the
corresponding connection (search on the ipv4 header of the
packet).
3. you get inode number which give you the process by lookng again
in /proc


il casino e che non so assolutamente come passare da sto inode al processo....
qualcuno me lo può spiegare?

ciao

DanieleC88
06-11-2005, 09:35
Non saprei aiutarti sul parsing, ma devi prendere l'ultima voce, che è l'inode e leggere nella corrispondente cartella, /proc/<inode>/. ;)

NA01
06-11-2005, 10:13
ne abbiamo parlato su irc, e non corrisponde.

tenete conto che un output è:



NA01:/home/ultio# cat /proc/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 0100007F:0019 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 6203 1 de4adb60 3000 0 0 2 -1
1: 6900FF05:A2A9 0611FED5:0050 01 00000000:00000000 00:00000000 00000000 1000 0 8031 1 d285e7e0 224 40 8 2 -1
2: 6900FF05:E8E1 673BEFD8:0050 01 00000000:00000000 00:00000000 00000000 1000 0 7901 1 d285e420 266 40 24 2 -1
3: 6900FF05:D889 0E052154:1A0B 01 00000000:00000000 02:00080EC1 00000000 1000 0 7438 2 de4ad3e0 240 62 30 2 -1

e che nessuna voce sembra rispecchiare direttamente acun pid :(


ciao

ilsensine
07-11-2005, 09:16
Non puoi farlo direttamente, in quanto ad un singolo inode possono corrispondere più "istanze aperte" possedute da diversi processi. L'unica è sfogliarsi /proc/<pid>/fd/.

NA01
07-11-2005, 14:41
:eek:
meno male che me lo hanno consigliato su netfilter con la voce:
"Why not simply use /proc interface" :sofico:
e vabbe` provo a implementarlo e guardo quanto e` veloce...
grazie, ciao!

NA01
07-11-2005, 15:14
scusa, ci ho pensato un attimo e mi e venuto un colpo.....
devo aprire TUTTI i /proc/pid/fd alla ricerca di un link che mi punti alla socket con l'inode giusto tra quadre????
ok che lo fa il pc e non lo faccio io a mano tutte le volte, ma non e` un po` macchinoso?
volevo solo sapere se e` questo che intendi.
cmq ci ho provato e sembra andare

grazie, ciao!



PS: scusate la puntegiatura e gli apostrofi/accenti messi a caso... quando mi abituero` a ste tastiere americane dell'uni mi saro` gia` laureato :D

ilsensine
07-11-2005, 15:31
Sì esattamente. Guarda allo strace di fuser.