Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Mar 2004

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.

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Okt 2004

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!

Computer science is no more about computers than astronomy is about telescopes.

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Mar 2004

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.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jul 2002

Ä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.

Min dator är tuffare än din.

Trädvy Permalänk
Medlem
Registrerad
Nov 2004

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

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Mar 2004

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.

Trädvy Permalänk
Hedersmedlem
Plats
Stockholm
Registrerad
Dec 2002

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

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

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

Trädvy Permalänk
Medlem
Plats
:sʇɐlԀ
Registrerad
Dec 2003
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

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!

Trädvy Permalänk
Medlem
Plats
sthlm
Registrerad
Okt 2003

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

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Feb 2002

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?).

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

Trädvy Permalänk
Hedersmedlem
Plats
Stockholm
Registrerad
Dec 2002
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å.

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

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Feb 2002

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...

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

Trädvy Permalänk
Hedersmedlem
Plats
Stockholm
Registrerad
Dec 2002
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.

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

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Feb 2002

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?

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

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005
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.

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

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Feb 2002

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

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