Kennen Sie eine Art und Weise in c-Schnittstelle eth0 ohne Sockel zugreifen und verwalten?Zugriff auf und Verwaltung von nativen Eth0 ohne Sockel
Antwort
Warum Sie nicht tun etwas entlang der Linien von Aufrufen der ifconfig Befehl auf der Schale in Ihrem C-Code:
system("ifconfig eth0 ...");
Dies beseitigt die Notwendigkeit, einen Dateideskriptor zu haben, sondern ermöglicht es Ihnen, Verwalten Sie das Gerät mit dem Befehl. Machen Sie eine Mann ifconfig, um zu sehen, wie Sie Ihre ifconfig Anfrage zu verwalten, was Sie mit der Schnittstelle tun müssen.
Wenn Sie eine niedrigere Ebene benötigen, dann können Sie einfach einen Raw-Socket öffnen ... den Index des zu manipulierenden Ethernet-Geräts zuweisen ... und dann Ihre ioctl() 'verwenden s zu konfigurieren, je nach Bedarf:
if ((fd = socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW)) == -1) {
perror("socket");
}
struct ifreq req;
strncpy(req.ifr_name, "eth0", IFNAMSIZ-1);
if (ioctl(fd, SIOCGIFINDEX, &ifreq) < 0)
perror("SIOCGIFINDEX");
Dann haben Sie Ihren Griff zu eth0 ...
Ja, Sie können über die entsprechenden ioctl
Anrufe direkt mit dem Netzwerkschnittstellentreiber sprechen. Weitere Informationen finden Sie in Ihrer Treiber-API-Referenz. Einige Betriebssysteme bieten möglicherweise auch Zugriff über ihre eigene API, siehe z. B. this question.
Ok, aber in der ioctl ich sende den Dateideskriptor. Ohne Sockel, welchen fd sollte ich benutzen? – user1307697
@ user1307697 Sie erkennen, dass niemand Ihnen antworten kann, ohne dass Sie uns mindestens sagen, welches Betriebssystem Sie verwenden, richtig? Probieren Sie zunächst/dev/eth0 aus. – littleadv
tut mir leid ... ich benutze Linux mint – user1307697
- 1. senden und recv auf Sockel
- 2. Zugriff auf UINavigationController in der nativen Umgebung?
- 3. Reagieren nativen Zugriff this.prop von innen Funktion
- 4. Sockel und Dateideskriptoren
- 5. Sockel Leistung auf Linux
- 6. Deadlock mit Sockel
- 7. Yii rollenbasierter Zugriff, Verwaltung eigener Beiträge
- 8. Sockel Betrieb auf nonsocket
- 9. Sockel Betrieb auf nonsocket
- 10. Anpassen von ListView ohne nativen Renderer
- 11. Zugriff auf JSF SelectItem.Label und Value von XHTML ohne selectOneMenu
- 12. mysql Überwachung und Verwaltung
- 13. Rails: Verwaltung mehrerer Sidekiqs ohne Upstart Skript
- 14. Django - dient, und die Verwaltung von Berechtigungen für statische Inhalte
- 15. Char Array Zuweisung und Verwaltung
- 16. Skript ausführen, wenn eth0 UP
- 17. DHCP auf Ubuntu Server 12.04 - lädt eth0 nicht
- 18. GUI zur Verwaltung von Redis
- 19. Zugriff auf kerberos gesichert WebHDFS ohne SPnego
- 20. eckig und sockel io klassenmanipulation
- 21. Änderungsdatum ohne Zugriff auf OS
- 22. Zugriff auf SharedPreferences ohne Kontext
- 23. Sockel nicht binden: kein solches Gerät
- 24. Subversion-Verwaltung von Projektkonfigurationsdateien
- 25. Spring-Autowiring funktioniert nicht von einer Klasse ohne Spring-Verwaltung
- 26. Zugriff auf Klassenbereichsvariablen ohne Selbst?
- 27. Verwaltung von Anweisungen
- 28. Verwaltung von Ruby-Pfaden
- 29. ADSI/IIS-Verwaltung und ASP.NET-Identitätswechsel
- 30. DOM-Speicher und CPU-Verwaltung
aber er sagte, er will nicht Sockets ... – littleadv
Einverstanden ... aber ich verstehe nicht die Abneigung gegen die Verwendung von Dateideskriptoren hier ... sowieso der erste Code-Schnipsel (ohne Socket-Implementierung) könnte alles sein, was er tun muss. –
Einverstanden, das OP scheint nicht genug Informationen zu teilen, um wirklich die Frage zu beantworten ... – littleadv