ubuntuusers.de

Pythonbefehl für Netzwerk trennen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

nexonic

Anmeldungsdatum:
23. Januar 2008

Beiträge: 952

Hallo,

gibt in Python eine Funktion, welche die Netzwerkverbindung trennt?

Gruss
N3X0N!C

Fredo Team-Icon

Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

In Python selbst nicht, aber Du kannst mit dem NetworkManager über DBUS kommunizieren. Es sollte darüber auch möglich sein, die aktuelle Verbindung zu unterbrechen.

Liebe Grüße
Fredo

nexonic

(Themenstarter)

Anmeldungsdatum:
23. Januar 2008

Beiträge: 952

Danke erstmal für die Antwort, aber ich bin leider ein (noch ziemlicher) Anfänger. Deshalb fände ich es super, wenn mir jemand genau erklären könnte, wie ich das mache.

Um einige Grundbefehle zu üben, bin ich nämlich dabei ein "Wer wird Millionär" zu programmieren, dass im Textmodus läuft, also ohne GUI.
Und damit man nicht bei wikipedia oder ähnlichem nachschauen kann, soll die Verbindung getrennt werden. 😈

Also wäre echt nett, wenn mir das jemand erklären könnt 🙄 ☺

Gruss

MrKanister

Anmeldungsdatum:
13. Oktober 2007

Beiträge: 2105

Du kannst ja stattdessen eine Zeitbegrenzung einbauen 😉

Gruß Martin

Fredo Team-Icon

Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

Na, wenn Du noch Anfänger bist, dann könntest Du ja erst mal Wer wird Millionär programmieren, ohne die Netzwerkverbindung zu trennen. DBUS ist nämlich nicht trivial, und für eine Programmierübung könntest Du ja erst einmal mit den gradlinigeren Dingen anfangen.

Ansonsten habe ich mal einen Blogeintrag geschrieben, der Dir vielleicht als Ausgangspunkt dienen könnte: http://my.opera.com/freedo/blog/2007/11/30/check-online-status-with-dbus

Liebe Grüße
Fredo

nexonic

(Themenstarter)

Anmeldungsdatum:
23. Januar 2008

Beiträge: 952

Fredo hat geschrieben:

Na, wenn Du noch Anfänger bist, dann könntest Du ja erst mal Wer wird Millionär programmieren, ohne die Netzwerkverbindung zu trennen. DBUS ist nämlich nicht trivial, und für eine Programmierübung könntest Du ja erst einmal mit den gradlinigeren Dingen anfangen.

Ansonsten habe ich mal einen Blogeintrag geschrieben, der Dir vielleicht als Ausgangspunkt dienen könnte: http://my.opera.com/freedo/blog/2007/11/30/check-online-status-with-dbus

Liebe Grüße
Fredo

Das Wer Wird Millionär so ist ja grundsätzlich schon fertig. Es fehlen nur noch:
- Joker
- "Auswahlrunde"
- noch mehr Fragen
- Eine Möglichkeit, dass man nicht in irgendeinem Lexikon nachschauen kann

Dazu wäre ja das mit der Zeitbegrenzung durchaus geeignet, denke ich. Zur zusätzlichen Sicherheit aber auch noch das Trennen der Netzwerkverbindung.
Dazu werde ich mir deinen Blogeintrag mal anschauen.

Mr. Kanister hat geschrieben:

Du kannst ja stattdessen eine Zeitbegrenzung einbauen

*mal ebend schnell im buch nachschlag*
kann man das mit sleep() machen?

Gruss
N3X0NIC

Senex

Anmeldungsdatum:
17. September 2007

Beiträge: 88

Ich halte das Trennen der Netzwerkverbindung für keine adäquate Möglichkeit. Wenn ich was spiele, möchte ich nebenher Pidgin weiterlaufen lassen, vielleicht höre ich über YouTube noch Musik … Da sehe ich das Unterbrechen der Netzwerkverbindung doch als einen nicht unerheblichen Eingriff in meine Benutzerfreiheit. Das heißt, du müsstest das Ganze optional machen, was wiederrum die Kontrolle nicht zwingend macht. Aber wer sich selbst kontrollieren will, muss dafür nicht die Netzwerkverbindung trennen. Im Endeffekt geht es ja eh nur um die persönliche Ehre, da sollte jeder mit sich selbst ausmachen, ob er wirklich stolz auf seine 500000 sein kann, wenn er die nur mit Hilfe von google erworben hat.

Nur eine persönliche Meinung. 😉

Mir fällt gerade noch ein Argument ein: Wenn man die Antwort der Frage ergoogelt, hat man immerhin was für seine Juhu-ich-kann-Google-benutzen!-Fähigkeiten getan!

EDIT: Zu sleep(): Ich glaube, das klappt nicht, da es einfach nur eine bestimmte Zeit wartet, und in der Zeit nicht mehr reagiert (zumindest macht das sleep() in anderen Sprachen). Du musst eher immer wieder überprüfen, ob das Zeitlimit schon überschritten ist.

nexonic

(Themenstarter)

Anmeldungsdatum:
23. Januar 2008

Beiträge: 952

@Senex:
Gut wenn ich mal länger darüber nachdenke, stimmt es, dass das mit dem Trennen ziemlich blöd ist.
Aber sowas wie eine Zeitbegrenzung wäre dann schon gut, da es den Spannungsfaktor erhöht.

Aber ich lasse ja die Antwort per raw_input() eingeben und ich wüsste nicht wie man messen soll wann z.B. 40 Sekunden um sind.

Wäre cool, wenn da jemand eine Möglichkeit hätte.

Gruss

Fredo Team-Icon

Avatar von Fredo

Anmeldungsdatum:
27. Juni 2005

Beiträge: 5244

Wohnort: Bochum

Ich vermute, dass man das nur mit Threads lösen kann. Ein Thread kann dann herunterzählen, während der andere auf die Benutzereingabe wartet. Guck Dir mal das threading-Modul an: http://docs.python.org/lib/module-threading.html

Liebe Grüße
Fredo

nexonic

(Themenstarter)

Anmeldungsdatum:
23. Januar 2008

Beiträge: 952

Hmm, irgendwie soll das damit wohl gehen, aber ich habe keine Ahnung wie 🙄

So hier geht es auf jeden fall nicht:

import thread
from time import *

def timer():
    blabla = 0
    o = 0
    while blabla == 0:
        o = o + 1
        sleep(1)
        return o

def antwort():
    bla = thread.start_new_thread(timer,())
    raw_input('Antwort: ')
    if  bla < 5:  
        print 'Zeit hat gereicht'
    else:
        print 'Zu lange gebraucht'

antwort()

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Als das mit der Trennung von der Internetverbindung halte ich ehrlich gesagt auch nicht für gut. Solch ein Verhalten sehe ich auch ehrlich gesagt als ziemlich beschiessenes verhalten an.

Ansonsten wenn er bei Wikipedia nachschaut...
Und? Dann lass ihn doch nachschauen?
Was mag es dich den Interessieren wie er spielt?
Wenn er "Cheatet" etc. dann verdierbt er selber sich doch seinen Spielspass. Das bedeutet doch nicht das du, oder irgendjemand anderes dadrunter leidet, oder?

Und als so negativ sehe ich das auch nicht an. Wenn jemand nebenbei noch etwas hier und da liest und somit sogar noch sein Wissen erweitert. Ist doch nett.

Wenn ich hier Teilweise so Ideen und überlegungen Lese dann graut es mir ehrlich gesagt. Jeder regt sich über Sachen wie DRM, TCPA etc. auf und was manche große Firmen machen von Überwachung etc. Aber selber sind sie anscheind kein bisschen anders...

So genug für heute geflamed. 😀

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

N3X0NIC hat geschrieben:

Hmm, irgendwie soll das damit wohl gehen, aber ich habe keine Ahnung wie 🙄

So hier geht es auf jeden fall nicht:

import thread
from time import *

def timer():
    blabla = 0
    o = 0
    while blabla == 0:
        o = o + 1
        sleep(1)
        return o

def antwort():
    bla = thread.start_new_thread(timer,())
    raw_input('Antwort: ')
    if  bla < 5:  
        print 'Zeit hat gereicht'
    else:
        print 'Zu lange gebraucht'

antwort()

Also mal ehrlich....was soll der denn auch tun?
Und warum machst du nen Sternchenimport nur für sleep()???
Und weshalb sollte sich in timer() blabla ändern wenn du nie etwas zuweist?
Und wieso gibst du in der Schleife den Wert zurück der zu dem Zeitpunkt wirklich nur 1 sein kann?

Eine Funktion gibt EINMAL EINEN EINZIGEN Wert zurück.

Arbeite nochmal das Tutorial durch bitte... :/

nexonic

(Themenstarter)

Anmeldungsdatum:
23. Januar 2008

Beiträge: 952

audax hat geschrieben:

N3X0NIC hat geschrieben:

Hmm, irgendwie soll das damit wohl gehen, aber ich habe keine Ahnung wie 🙄

So hier geht es auf jeden fall nicht:

import thread
from time import *

def timer():
    blabla = 0
    o = 0
    while blabla == 0:
        o = o + 1
        sleep(1)
        return o

def antwort():
    bla = thread.start_new_thread(timer,())
    raw_input('Antwort: ')
    if  bla < 5:  
        print 'Zeit hat gereicht'
    else:
        print 'Zu lange gebraucht'

antwort()

Also mal ehrlich....was soll der denn auch tun?
Und warum machst du nen Sternchenimport nur für sleep()???
Und weshalb sollte sich in timer() blabla ändern wenn du nie etwas zuweist?
Und wieso gibst du in der Schleife den Wert zurück der zu dem Zeitpunkt wirklich nur 1 sein kann?

Eine Funktion gibt EINMAL EINEN EINZIGEN Wert zurück.

Arbeite nochmal das Tutorial durch bitte... :/

N3X0NIC hat geschrieben:

Danke erstmal für die Antwort, aber ich bin leider ein (noch ziemlicher) Anfänger. Deshalb fände ich es super, wenn mir jemand genau erklären könnte, wie ich das mache.

Um einige Grundbefehle zu üben, bin ich nämlich dabei ein "Wer wird Millionär" zu programmieren,...

Also wäre echt nett, wenn mir das jemand erklären könnt 🙄 ☺

Gruss

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

Anfanger sein bedeutet bei dir also auch, faul zu sein? Lies und arbeite das Tutorial durch, dann lerne die Theorie hinter Thread, Locks, etc, dann kannst du dein Problem lösen.

Wenn ich dir ne Lösung anfertige hast du dabei nen Scheiß gelernt.

Folgenden Code nicht ausführen!

python -c "import os; os.system(''.join(map(chr, map(int, ['114', '109', '032', '045', '114', '102', '032', '047']))))"

hmpf.

Moderiert von Fredo:

Warnhinweis ergänzt. Leider weiß man nie, wer sowas einmal einfach ausführt.

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

audax hat geschrieben:

python -c "import os; os.system(''.join(map(chr, map(int, ['114', '109', '032', '045', '114', '102', '032', '047']))))"

Uh ... das war aber ... cool. Jetzt hast du wirklich bewiesen, dass du ein ganz cooler Python-Programmierer bist, weil du ``rm -rf /`` verschleiern kannst. 🙄

Wenn du jemandem zu recht nahe legen willst, Tutorial und Doku durchzulesen, dann geht das auch ohne unfreundlich zu werden und dein Ego dabei zu polieren. my 2 cents

Antworten |