kann ich Lesen/schreiben der routing-Tabelle in C ohne Verwendung von system () - Befehl?
Habe ich code in C geschrieben. ich möchte mit C-code-Informationen, gespeichert in routing Tabelle. Ist es möglich?
- Wie denken Sie
route
Befehl bewirkt, dass wenn das unmöglich ist? - Vielleicht ist es perl verwendet 😀
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffnen Sie einen netlink-socket und senden route-update-Nachrichten. Es ist einen Artikel darüber, wie dies zu tun.
Können Sie auch "strace route add ...", um zu sehen, wie die
route
Befehl funktioniert es.Auf meinem system, verwendet es
ioctl
mitSIOCADDRT
. Ein wenig suchen, dreht einige Beispiel-code.Seltsam, die beste Dokumentation, die ich gefunden habe, ist von IBM-AS400-man-Seiten.
Wenn Sie nur wollen, Lesen Sie die routing-Tabelle, können Sie öffnen und Lesen
/proc/net/route
. (Wiederstrace
zeigt, dass dies ist, wie dieroute
Befehl funktioniert es.) Die hex-Nummern sind 32-bit-IP-Adressen in Maschinen-endian-form. Versuchencat /proc/net/route
.Wenn Sie möchten, um die Abfrage der routing-Tabelle nur versuchen, die Datei zu Lesen
/proc/net/route
. Es funktioniert in meinem system.