Permalänk
Medlem

Vilket sciptspråk

Hej

Eftersom mitt ADSL har den fula ovanan att koppla ner sig ibland (speciellt när det regnar) så skulle jag vilja skapa ett scipt som körs på min server och pingar en adress på Internet. Om det inte går att pinga adressen skall scriptet logga in i min router och trycka på diverse knappar och länkar i web-interfacet för att göra en renew av IP-adressen.
Vilket scriptspråk är det enklaste/bästa att använda man vill kunna skicka/ta emot data från websidor?

Är det i FreeBSD möjligt att schemalägga något att köras mer än en gång i minuten? Skulle vilja köra detta skript var 10 sekund ungefär.

Permalänk
Medlem

Hmm.
Det tar emot att säga det här, men jag tror det är perl du borde titta lite närmre på.

Att få ett skript att köras så pass ofta borde itne vara helt omöjligt - antingen kan du göra detta i crontab (*/360 _borde_ fungera), eller göra ett skript som du startar vid booten (de flesta init-system har något smart sätt att göra detta på), och som fungerar ungefär "while true do sleep 10 ; script.pl ; done".

Eller något. Lycka till!

Visa signatur

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

@oscar:prutt.party / monotux@freenode

Permalänk
Medlem

Jag var rädd för att det var Perl

Sjäva web-interfacet verkar vara JavaScript baserat. Kan det ställa till problem?

Koden för knappen som gör en renew är:
<input type="button" name="connect" value="Renew" onClick="stdAction(this.form,'renew')">

Funktionen stdAction finns i en fil som heter linux.js.

Routern är förövrigt en Netgear DG834.

Permalänk
Medlem

Även om det körs en massa javascript i browsern när du använder webgränssnittet, så är all kommunikation mellan browsern och Netgear-burken ändå vanliga HTTP-requests. Det kan vara lite klurigt att lista ut hur de ser ut ifrån källkoden, men man kan alltid "spela in dem" (t.ex. med en nätverkssniffer, typ ethereal), och skicka likadana själv.

Visa signatur

Min dator är tuffare än din.

Permalänk

Om du ska köra något var tionde sekund tror jag att det är bättre att låta programmet ligga igång konstant, med en inbyggd loop. Dvs:

1. Pinga adress
2. Om pingen gick bra - sov 10 sek, annars ip renew
3. Goto 1

Permalänk
Medlem

Nu är scriptet klar. Perl var faktiskt inte så krångligt som jag trodde. Kommer att använda det i många projekt framöver.

Ni som är i behov av ett liknande script kan ladda ner det från http://vertex.homeunix.net/renewip.tar.gz.

Det är avsett för NETGEAR DG834 men kan nog anpassas för andra routrar.

Permalänk
Hedersmedlem

Perl är mysigt, fattar inte vad folk har emot det.

EDIT: Lägg alla inställningar i .conf-filen istället...

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av m0REc
Perl är mysigt, fattar inte vad folk har emot det.

EDIT: Lägg alla inställningar i .conf-filen istället...

Precis, perl är ju som tjugo kilo blandat knark ihopmixat med samtliga andra språk på marknaden... Och alla gillar ju knark

Visa signatur

i5-4670k | GTX 670 | ASUS Z87-A | 2x4GB Corsair Vengeance 1333 MHz | Corsair VX 450 | 80 GB Intel X25 SSD systemdisk | 256 GB Samsung 840 spel/cachedisk | 2+3 TB WD Green lagringsdiskar | Fractal Define R4 | G2420HDBL (24") + L227WT (22")

Citera för svar!

Permalänk
Medlem

Har också en Netgear 834; mysigt med den är att den kört GNU/Linux i grunden, så man kan faktiskt telnet:a den och få ett shell att leka i.

Kör
http://192.168.0.1/setup.cgi?todo=debug
i en browser och telnet:a sedan 192.168.0.1 så kommer du in och har root.

Ett par jobbiga saker finns dock; du kan spara filer på den, men om du startar om routern så försvinner filerna. Lösningen finns, någonstans på google.
Sen finns det inte något vettig text-editor så du får cat:a.

Så om jag vore du skulle jag lagt in skriptet på routern istället

Permalänk

Känner bara att jag måste gripa detta gyllenne tillfälle då jag har ett liknande "problem". Jag har dynamisk ip och ibland, kankse några gånger i veckan får jag gå in och uppdatera inställningarna för loopias dns (i webbinterface läge). Det är ju ingen panik direkt, men visst skulle det vara skönt om jag slapp göra detta... Precis som orginaltopic lyder undrar jag således vilket språk som lämpar sig bäst för detta? (Eller om det finns någon annan bättre lösning?).

Visa signatur

Hör ropen skalla: Mer CO-OP åt oss alla!
Fanboys är kapitalismens svar på religiösa fundamentalister.
Upplysning für alle: www.thesciencenetwork.org www.transhumanism.org

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av nienithaur
Känner bara att jag måste gripa detta gyllenne tillfälle då jag har ett liknande "problem". Jag har dynamisk ip och ibland, kankse några gånger i veckan får jag gå in och uppdatera inställningarna för loopias dns (i webbinterface läge). Det är ju ingen panik direkt, men visst skulle det vara skönt om jag slapp göra detta... Precis som orginaltopic lyder undrar jag således vilket språk som lämpar sig bäst för detta? (Eller om det finns någon annan bättre lösning?).

http://support.loopia.se/index.php?_a=knowledgebase&_j=questi...

Men jag skulle nog säga Perl i detta fallet också.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk

Ok, bra. Jag har endå tänkt att lära mig Perl så detta blir en bra ursäkt. Jag glömde nämna det, men tror jag läst det där om DNSer, men klienten fungerar som sagt bara till windows så som jag förstår det hela...

Visa signatur

Hör ropen skalla: Mer CO-OP åt oss alla!
Fanboys är kapitalismens svar på religiösa fundamentalister.
Upplysning für alle: www.thesciencenetwork.org www.transhumanism.org

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av nienithaur
Ok, bra. Jag har endå tänkt att lära mig Perl så detta blir en bra ursäkt. Jag glömde nämna det, men tror jag läst det där om DNSer, men klienten fungerar som sagt bara till windows så som jag förstår det hela...

Läste du detta?

Citat:

LoopiaDNS har stöd för DynDNS protokollet vilket gör att de flesta applikationerna som är skrivna för DynDNS fungerar med LoopiaDNS.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk

Det såg jag inte. Verkar som att det finns en klient som heter ddclient, testar med det...

EDIT: Är klienten på något sätt beroende av att man regestrerar sig på dyndns.org?

Visa signatur

Hör ropen skalla: Mer CO-OP åt oss alla!
Fanboys är kapitalismens svar på religiösa fundamentalister.
Upplysning für alle: www.thesciencenetwork.org www.transhumanism.org

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nienithaur
EDIT: Är klienten på något sätt beroende av att man regestrerar sig på dyndns.org?

Nej, jag använder den mot zoneedit utan problem.

Visa signatur

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Permalänk

Ahh, det gäller som sagt nog bara att DNS providers stödjer aktuellt protokoll.. Silly me..

Visa signatur

Hör ropen skalla: Mer CO-OP åt oss alla!
Fanboys är kapitalismens svar på religiösa fundamentalister.
Upplysning für alle: www.thesciencenetwork.org www.transhumanism.org