Python-Modul für PPPoE

Ich versuche, eine neue PPoE-Sitzung zu verbinden, einige Daten zu senden und zu empfangen und die Sitzung zu schließen.

Gibt es ein FOSS-Python-Modul, das mir hilft?

Beachten Sie, dass ich https://github.com/jamiesun/pyras gefunden habe, aber es scheint keine Dokumentation zu geben :-(


[Update] Ich habe auch win32ras gefunden (zumindest habe ich die Dokumentation gefunden; ich habe noch keinen Download-Link gefunden), was nützlich erscheint, obwohl es nicht sehr dokumentiert ist. Es gibt ein paar Beispiele.

Was ich hier suche, ist eine maßgebliche Antwort von jemandem, der Erfahrung hat.

Ich setze voraus, dass das empfohlene Python-Modul vollständiges PPPoE ausführen kann, einschließlich LCP-Konfiguration und PADI/PDO usw. Authentifizierung (ich vermute stark, dass dies vom Windows RAS-Dienst gehandhabt wird, erfordert aber eine Bestätigung).

Die empfohlene Dokumentation sollte auch eine angemessene Dokumentation oder Codebeispiele enthalten, um zu zeigen, wie eine URL gesendet und Daten über die aufgebaute PPPoE-Verbindung empfangen werden können.

Linux-Unterstützung ist ein Bonus, aber kein "must have".

Antworten (2)

Nicht gut in Englisch. Sie können das Modul win32ras importieren

Einfach so: win32ras importieren

"""""""""""""""""""""""""""""""""""""""""""""" """"""""""" Übrigens, das Modul pyras ist nur ein Test, der Autor sagte: "本着学习的目的试了试,用python实现了一个pppoe拨号客户端,实现了基本的拨号和代理检测功能(采用了 Shell xu的建议),放了一个简单的开源版,界面用的Tkinter,才200多职䀂

Win7 64 下测试OK,xp还没有测试,问题应该不大。

https://github.com/jamiesun/pyras

并没有实现PPPOE协议部分,因为我发现其实用pywin32可以很好的利用系统的pppoe功能。每个宽带连接都有一个rasphone.pbk配置文件,只要拷贝一份配置就不用调系统对话框流程来创建了,很多参数可以自己配置。使用w32ras基本可以很好的控制。

另外 就 是 用 了 pycap 和 dpkt 来 抓包 检测 代理 , 发现 ip 为 本机 的 http 请求 判断 为 ((不 影响 本机 访问 自己 的 http 服务)) 代理 (((本机 访问 的 的 http 服务))) 代理))) 服务 服务 服务)))))))))))))))))))))))))) 代理 (((((() 代理 ((不 影响 本机 自己 的 http 服务) 代理 ((不 影响 本机 自己 的 的 的 的 的 服务) 为 ((不 影响 本机 自己 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的 的

防止路由的功能我也想好了,和AAA服务器扩展下,每天都使用一个动态的用户名,用路由肯定烦溂。

使用pyinstaller打包exe,一般人反编译也不太容易。"


[Update von OP] Ich habe das über Google Translate ausgeführt und bekommen

Der Zweck des Lernens, das Experiment auszuprobieren, mit Python, um einen PPPOE-DFÜ-Client zu erreichen, um die grundlegende DFÜ- und Proxy-Erkennung (unter Verwendung der Shell-xu-Empfehlungen) zu erreichen, eine einfache Open-Source-Version der Schnittstelle mit Tkinter zu setzen. Nur mehr als 200 Codezeilen.

Aktuell im win7 64 Test OK, xp wurde nicht getestet, das Problem sollte nicht sein.

Und ich habe keine PPPOE-Vereinbarung erzielt, weil ich festgestellt habe, dass die PPPOE-Funktion des Pywin32-Systems tatsächlich eine gute Verwendung sein kann. Jede Breitbandverbindung hat eine Konfigurationsdatei rasphone.pbk, solange eine Kopie der Konfiguration nicht an das Systemdialogfeld übertragen wird, um den Prozess zu erstellen, können viele Parameter konfiguriert werden. Mit w32ras basic lässt sich sehr gut steuern.

Die andere besteht darin, pycap und dpkt Packet Analysis and Detection Package Agent found ip zu verwenden, um die HTTP-Anforderung des Computers zu ermitteln, um den Agenten zu bestimmen (beeinträchtigt nicht den Zugriff des Computers auf seinen HTTP-Dienst).

Außerdem möchte ich die Routing-Funktion gut verhindern, und AAA-Server-Erweiterung, die tägliche Verwendung eines dynamischen Benutzernamens, mit dem das Routing sicherlich überdrüssig ist.

Verwenden Sie pyinstaller package exe, die meisten Leute dekompilieren nicht einfach.

Antwort vom OP, nur für den Fall, dass es in Zukunft jemandem hilft

Ich habe das Öffnen von Systemsteuerung/Netzwerkverbindungen und das Erstellen einer neuen PPPoeE-Verbindung simuliert und dann das Klicken auf das Symbol simuliert.

rasPhoneBookPath="C:\\Users\\User\\AppData\\Roaming\\Microsoft\\Network\\Connections\\Pbk\\TemporaryRasphPhonebook.pbk"

Suchen Sie nach dem entsprechenden Pfad (Windows verschiebt ihn in verschiedenen Versionen, aber es ist immer eine .pbkDatei).

Schreiben Sie Python-Code, um eine ähnliche Datei zu erstellen. Hier sind die Teile, die ich geändert habe

with open(rasPhoneBookPath, "wt") as phoneBookFile :
    phoneBookFile.write('[' + pppoeSessionName + '\n')
    phoneBookFile.write("PhoneNumber=ACGC:AT+CGDCONT=' + bearerId + ',"IP","' + pppoeSessionName + '"\n")

und simulieren Sie einen Klick auf das Symbol durch

rasDialResult = os.system("rasdial " + "' + pppoeSessionName + '" + " /PHONEBOOK:" + rasPhoneBookPath)

Das funktioniert bei mir unter Windows 7