Portál AbcLinuxu, 9. května 2025 22:48

Dotaz: Zjisteni rozhrani podle IP na FreeBSD

27.11.2006 11:06 pepa
Zjisteni rozhrani podle IP na FreeBSD
Přečteno: 161×
Odpovědět | Admin
DD,

navrhuji sitovou aplikaci, kde potrebuji podle cilove IP zjistit z jakeho rozhrani se bude paket odesilat. Existuji na tohle nejake funkce pro jazyk C, nebo budu muset nejakym zpusobem parsovat routovaci tabulku?

diky za odpovedi

p.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.11.2006 11:39 ivan | skóre: 17 | blog: ivan
Rozbalit Rozbalit vše Re: Zjisteni rozhrani podle IP na FreeBSD
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na FreeBSD je to mnohem jednoudussi nez na linuxu. Proste spustis prikaz "route get IP" (nebo snad "route print IP" ?) a ono se to kernelu zepta co by s tim IPckem delal. Pokud to potrebujes v Ccku tak se koukni do zdrojaku prikazu route.
Nevite nekdo jak neco podobnyho udelat na linuxu?
27.11.2006 11:53 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Zjisteni rozhrani podle IP na FreeBSD
Na FreeBSD je to mnohem jednoudussi nez na linuxu. Proste spustis prikaz "route get IP" (nebo snad "route print IP" ?) a ono se to kernelu zepta co by s tim IPckem delal.

Máte pravdu, je to mnohem jednodušší, na Linuxu byste totiž musel spustit 'ip route get %s'… :-)

27.11.2006 12:01 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Zjisteni rozhrani podle IP na FreeBSD

ip route show to match IP

Napr. u me:

[pasmen@nyx ~]$ ip route show to match 192.168.1.254
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.102 
default via 192.168.1.3 dev eth0

27.11.2006 12:09 ivan | skóre: 17 | blog: ivan
Rozbalit Rozbalit vše OT: Re: Zjisteni rozhrani podle IP na FreeBSD
Aha diky moc - tohle mi moc chybelo. Takze kernel uz to nejspis davno umi, jen tahle moznost nedobublala do prikazu roue.
27.11.2006 12:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: OT: Re: Zjisteni rozhrani podle IP na FreeBSD
Příkaz route je obsolete od jádra 2.2.0 (vydáno v lednu 1999), takže je možná problém spíš v tom, že k vám nedobublala tato informace… :-)
27.11.2006 13:18 ivan | skóre: 17 | blog: ivan
Rozbalit Rozbalit vše Re: OT: Re: Zjisteni rozhrani podle IP na FreeBSD
Nojo no, kdyz ja delam i s jinyma unixama, a prikaz ip mi k srdci zatim nijak neprirost. Myslim, ze nejsem sam :) Kupodivu i takovy netsh se mi libi vic, jestli ale nekdo rozhod, ze budoucnost je v prikazu IP tak s tim nic neudelam a budu se s tim muset smirit.
28.11.2006 10:37 pepaaaaaa
Rozbalit Rozbalit vše Re: Zjisteni rozhrani podle IP na FreeBSD
Odpovědět | | Sbalit | Link | Blokovat | Admin
DD,

jeste jsem se chtel zeptat, jestli v C na tohle neexistuje primo nejak fce, prochazet zdrojak route.c me prijde ponekud krkolomne (1600 radku). Nenasly by se popripade nejake vzorove priklady?

Diky za odpovedi

p.
28.11.2006 12:13 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Zjisteni rozhrani podle IP na FreeBSD
Tezko na to bude primo v libc nejaka funkce, urcite to pujde pres kernel API. Nicmene vzdycky budes muset vychazet z routovaci tabulky a pravidla pro to, kam ktery packet pujde pres jake rozhrani psat sam. Muzes parsovat primo routovaci tabulku jadra (/proc/net/route).
28.11.2006 12:19 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Zjisteni rozhrani podle IP na FreeBSD
Pokud je řeč o Linuxu (podle zmínky o /proc to tak vypadá, tak tam bych tento postup důrazně nedoporučil, protože obsah /proc/net/route je poněkud zavádějící…

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.