WinFuture-Forum.de: Speedport W722V Reconnect Skript - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Speedport W722V Reconnect Skript


#1 Mitglied ist offline   Mase 

  • Gruppe: aktive Mitglieder
  • Beiträge: 103
  • Beigetreten: 12. September 06
  • Reputation: 0

geschrieben 16. Dezember 2012 - 20:17

tag die herrschaften!

ich hoffe mal, dass ich hier in der richtigen ecke gelandet bin :)

wollte mal fragen ob jemand weis wie ich eine .bat oder sonstiges erstelle um mein

t-com speedport w 722 v (typ b) reuzustarten bzw die verbindung kurz trenne um eine neue ip zu bekommen.

danke schonma im vorraus!

EDIT:

habe das

"start https://speedport.ip/cgi-bin/disconnect.exe"

in eine .bat geschrieben. funktioniert auch. allerdings öffnet sich immer ein tab in firefox. dort steht dann dass "online control" benötigt wird.
es geht aber!
allerdings hätte ich das ganze aber eben gern ohne firefox, hätte da jemand ne lösung?

Dieser Beitrag wurde von Mase bearbeitet: 16. Dezember 2012 - 20:26

0

Anzeige



#2 Mitglied ist offline   Mr. Floppy 

  • Gruppe: VIP Mitglieder
  • Beiträge: 4.115
  • Beigetreten: 01. Juli 08
  • Reputation: 271
  • Geschlecht:Männlich

geschrieben 16. Dezember 2012 - 20:45

Vielleicht hilft Dir das weiter?
0

#3 Mitglied ist offline   Mase 

  • Gruppe: aktive Mitglieder
  • Beiträge: 103
  • Beigetreten: 12. September 06
  • Reputation: 0

geschrieben 16. Dezember 2012 - 21:01

dafür müsste ich ja dann curl nutzen, was ich eig nicht wollte :/
0

#4 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 16. Dezember 2012 - 21:03

Zwar nicht für eine Batch, aber der jDownloader kann das sehr effektiv.

Aber vielleicht findet sich noch ein Script
0

#5 Mitglied ist offline   Mase 

  • Gruppe: aktive Mitglieder
  • Beiträge: 103
  • Beigetreten: 12. September 06
  • Reputation: 0

geschrieben 16. Dezember 2012 - 21:05

Beitrag anzeigenZitat (d4rkn3ss4ev3r: 16. Dezember 2012 - 21:03)

Zwar nicht für eine Batch, aber der jDownloader kann das sehr effektiv.

Aber vielleicht findet sich noch ein Script


ja im jdownloader hab ichs schon was wunderbar klappt.
wollte aber eig auch ne .bat, da ichs wollte ohne irgend ein prog zu nutzen...
0

#6 _Sworddragon_

  • Gruppe: Gäste

geschrieben 17. Dezember 2012 - 12:32

Eine Batch-Datei benutzt aber auch ein Programm, sonst könnte sie auch nicht interpretiert werden. Ich selber habe für meinen Router auch so ein Script geschrieben, allerdings in Python, was aber auch eine Scriptsprache wie Batch ist. Wäre eine Lösung in Python für dich überhaupt eine Alternative?
0

#7 Mitglied ist offline   Mase 

  • Gruppe: aktive Mitglieder
  • Beiträge: 103
  • Beigetreten: 12. September 06
  • Reputation: 0

geschrieben 17. Dezember 2012 - 14:58

Beitrag anzeigenZitat (Sworddragon: 17. Dezember 2012 - 12:32)

Eine Batch-Datei benutzt aber auch ein Programm, sonst könnte sie auch nicht interpretiert werden. Ich selber habe für meinen Router auch so ein Script geschrieben, allerdings in Python, was aber auch eine Scriptsprache wie Batch ist. Wäre eine Lösung in Python für dich überhaupt eine Alternative?



oO aber welches? denn es funktioniert ja?!

ja an sich schon. von python hab ich halt nicht im geringsten ne ahnung...
0

#8 _Sworddragon_

  • Gruppe: Gäste

geschrieben 18. Dezember 2012 - 00:20

Beitrag anzeigenZitat (Mase: 17. Dezember 2012 - 14:58)

oO aber welches? denn es funktioniert ja?!


Na Batch :P
Der Vorteil ist, dass es bei jeder Windows-Installation schon mit dabei ist.


Beitrag anzeigenZitat (Mase: 17. Dezember 2012 - 14:58)

ja an sich schon. von python hab ich halt nicht im geringsten ne ahnung...


Ich zeige dir mal, wie mein Script aussieht:

#!/usr/bin/python2 -OOtt
# coding=utf-8
#    Copyright (C) 2011, 2012 Sworddragon

try:
	import argparse, os, pcapy, sys, threading, urllib2

	sys.path.insert(0, os.path.dirname(os.path.realpath(sys.argv[0])) + '/lib')

	import log
except:
	print('Importing failed')
	exit(1)

class forced_reconnect:
	def __init__(self):
		if self._parse_arguments() == -1 or self._watch_connection() == -1 or self._reconnect() == -1:
			exit(1)

	def _capture(self):
		try:
			capture = pcapy.open_live(self.option.interface, 1, True, self.option.timeout * 1000)
		except:
			sys.stderr.write('Couldn\'t open the interface\n')
			self.error = True
			return
		try:
			capture.setfilter(self.option.filter)
		except:
			sys.stderr.write('The filter is invalid\n')
			self.error = True
			return
		while 1:
			try:
				capture.next()
			except:
				break

	def _parse_arguments(self):
		arguments = argparse.ArgumentParser(formatter_class = argparse.RawTextHelpFormatter)
		arguments.add_argument('-f', '--filter', help = 'The filter which will be used for the capturing')
		arguments.add_argument('-i', '--interface', default = 'eth0', help = 'The interface which will be watched')
		arguments.add_argument('-t', '--timeout', default = 15, type = int, help = 'The time in seconds the interface musn\'t get filtered data to be reset')
		arguments.add_argument('-w', '--wait', default = 14400, type = int, help = 'The time in seconds after the script forces a reconnect')
		self.option = arguments.parse_args()
		if self.option.timeout < 0:
			sys.stderr.write('--timeout must be 0 or higher\n')
			return -1
		if self.option.wait < 0:
			sys.stderr.write('--wait must be 0 or higher\n')
			return -1
		return 0

	def _reconnect(self):
		cookie = ''
		try:
			urllib2.urlopen('http://192.168.1.1/web.cgi')
		except urllib2.HTTPError as error:
			cookie = error.read().split(' ')[0][-44:-1]
		if cookie == '':
			sys.stderr.write('Couldn\'t access the router\n')
			return -1
		request = urllib2.Request('http://192.168.1.1/web.cgi', 'action=StopPppoeMan', {'Cookie': cookie})
		try:
			urllib2.urlopen(request)
		except:
			pass
		request = urllib2.Request('http://192.168.1.1/web.cgi', 'action=StartPppoeMan', {'Cookie': cookie})
		try:
			urllib2.urlopen(request)
		except:
			pass
		return 0

	def _watch_connection(self):
		if self.option.timeout > 0 and self.option.wait > 0:
			self.error = False
			thread = threading.Thread(target = self._capture)
			thread.daemon = True
			try:
				thread.start()
			except:
				sys.stderr.write('Couldn\'t start the thread\n')
				return -1
			thread.join(self.option.wait)
			if self.error == True:
				return -1
		return 0

try:
	forced_reconnect()
except KeyboardInterrupt:
	sys.stderr.write('Aborted\n')
	exit(1)
except (MemoryError, RuntimeError) as error:
	sys.stderr.write(str(error) + '\n')
	exit(1)
except SystemExit:
	pass
except:
	log.log()



Möchtest du dieses Script als Vorlage benutzen, musst du noch ein paar Sachen anpassen:

  • Der Log-Teil kann raus, da du das wohl nicht benötigen wirst.
  • Ich weiß nicht nicht, ob das bei Windows mit eth0 als Netzwerkschnittstelle funktioniert, aber das kann vielleicht jemand anderes hier beantworten.
  • _reconnect() müsste noch so angepasst werden, dass die dementsprechenden Daten für dein Router übermittelt werden. Die Daten in dem Script sind aktuell für ein Alice IAD 3221/3222 angepasst.

Dieser Beitrag wurde von Sworddragon bearbeitet: 18. Dezember 2012 - 11:59

0

#9 Mitglied ist offline   Mase 

  • Gruppe: aktive Mitglieder
  • Beiträge: 103
  • Beigetreten: 12. September 06
  • Reputation: 0

geschrieben 18. Dezember 2012 - 20:49

ok, ich will ehrlich sein: hab 0 verstanden :D
0

#10 _Sworddragon_

  • Gruppe: Gäste

geschrieben 23. Dezember 2012 - 17:59

Notfalls musst du ein wenig rumprobieren, Google zur Hilfe nehmen oder hier bei Problemen fragen. Als erstes solltest du erstmal rausbekommen, wie dein Router die Verbindung trennt und dann wieder aufbaut. Hilfreich ist es, im Quellcode der HTML-Ausgabe deines Routers zu gucken, welche GET/POST-Parameter beim Klicken der Buttons übertragen werden. Notfalls gibt es auch sicherlich ein Firefox-Plugin, welches die HTTP-Informationen aufzeichnet.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0