Författare:
Per Stenebo
Skapad:
2013-01-03 19:49:33
Ändrad:
2017-06-26 09:42:42
sv

Manual BendIP

Manual för applikationen BendIP i BendCMS.

Beskrivning

En samling av sidor för att hantera information om vilken IP-adress en värd har för tillfället.
Tjänsten kan jämföras med befintliga tjänster som DynDNS, yi.org mfl, fast denna använder bara IP-adressen (tex 192.0.43.10), inte domännamnet (tex example.com).

Ändamålet är tex att en viss adress alltid omdirigeras till den IP-adress som värden har för tillfället. Det kan vara speciellt användbart för värdar som har en dynamiskt tilldelad IP-adress (dom flesta hem och företag med ADSL-anslutning).

Funktioner

  • Skapa och hantera BendIP-konton
  • Visa klientens aktuella (senast inrapporterade) externa ip.
  • Visa klientens ip-historik.
  • Ta emot och spara uppdatering av IP (v4).
  • Automatisk omdirigering till aktuell ip för vald identitet.
  • Visa besökarens externa ip utan krav på IP-konto.
  • Svara ip-förfrågan med enbart ip på en i övrigt blank sida, utan krav på IP-konto. 
    Direkt i en webbläsare, klistra in adressen:
    http://bends.se/?page=whatsmyip
    eller ge kommando i bash:
    curl --max-time 100 "http://bends.se/?page=whatsmyip"
    eller i php:
    $arr = file(http://bends.se/?page=whatsmyip);
    $myip = implode('', $arr);
    $myip = trim($myip);

 

Säkerhet

Vilka användare som kan skapa konton avgörs av sidans användarnivå för att läsa sidan (access_level).
 
Om användaren har en användarnivå över värdet "Minsta användarnivå för speciell åtgärd" (custom_level) kan användaren även se och redigera konton och se IP-historik som andra användare har skapat.
 
Vem som helst som känner till konto-ID och lösenord kan skicka uppdatering via BendIP.

 

Sidor

Sidan BendIP

Visar aktuell (senast lagrade) IP, historik för valt IP-konto och annan relaterad information.

Sidan BendIP-konto

Klienten som ska utnyttja tjänsten BendIP behöver ha ett BendIP-konto på den mottagande servern.

När man skapar eller redigerar ett BendIP-konto anges även standardvärde för när IP ska uppdateras (update), se mer nedan under Uppdatera IP.

BendIP-konto är en variant av sidan Servicekonto och delar flera filer.

Sidan Uppdatera IP

Ändamål: Uppdatera datafil med aktuell IP-adress.

Sidan har inget grafiskt gränssnitt och visas inte i menyn, den är avsedd för automatiserad uppdatering.

Informationen lagras i textfilen ~/pageData/BendIP/ipData_n.csv där det sista n ersätts med kontots id-nummer.
Filen innehåller en datapost per rad med kommaseparerade datafält i varje rad.
Filen skapas vid första uppdateringen.

Minimalt exempel:

http://example.com?page=bendip/update-ip&aid=23&pwd=mypass

Exempel med alla variabler:

http://example.com?page=bendip/update-ip&aid=23&pwd=mypass&ip=192.0.43.10&com=test&update=onchange

Variabler

? Avdelare mellan url och variabler.

& Avdelare mellan variabelpar namn=värde

page=bendip/update-ip Öppna sidan Uppdatera IP i BendCMS.

aid=23 Uppdatera IP-konto med id 23. Det är alltså IP-kontots id-nummer och inget annat som avses.

pwd=mypass Lösenordet till angivet konto är mypass

ip=192.0.43.10 IP-adressen som skall sparas. Om denna variablen är tom eller utelämnas används den IP-adress som servern har i php-variablen $_SERVER['REMOTE_ADDR']

com=test En valfri kommentar till uppdateringen, tex cronUpdate.

update=onchange betyder att uppdateringen bara sparas om IP-adressen har ändrats sedan sist.
update=always betyder att varje uppdatering skrivs till datafilen.
Om variablen update utelämnas används kontots standard-värde.

Returvärde

Resultatet skrivs ut i klartext, utan html-kod.

Skript

Skapa ett kommandoradsskript som innehåller kod för uppdatering, detta kan sparas som ipUpdate.sh (.sh för linux).

Exempel i Bash med wget (laddar ner en fil innehållande svaret, filen sparas som ipUpdate.txt):

wget --output-document ipUpdate.txt "http://example.com?page=bendip/update-ip&aid=23&pwd=mypass&com=test"

Exempel i Bash med curl (svaret visas i klartext på skärmen/stdout):

curl --max-time 100 "http://example.com?page=bendip/update-ip&aid=23&pwd=mypass&com=test"

Cron

För att IP skall uppdateras automatiskt behöver vi skapa ett schemalagt jobb, i linux används Cron för detta, exempel för Ubuntu Server:

Skapa en crontab:

crontab -e

Lägg till ett cronjobb, exemplet kommer att köra skriptet /home/per/ipUpdate.sh klockan 06,30 varje dag, modifiera texten efter din situation:

# Uppdatera IP-info
30 06 * * * /home/per/ipUpdate.sh

 

Sidan Visa enbart IP

Ändamål: Returnera aktuell IP-adress.

Sidan har inget grafiskt gränssnitt och visas inte i menyn, den är avsedd för automatiserad hämtning.

Minimalt exempel:

http://example.com?page=whatsmyip

Exempel med alla variabler:

http://example.com?page=whatsmyip&aid=23&pwd=mypass

Om aid och pwd utelämnas läses klientens (externa) ip-adress av med PHP-variablen $_SERVER['REMOTE_ADDR'].

Om kontot kan identifieras och verifieras korrekt hämtas den senast lagrade IP-adressen från datafilen som tillhör angivet konto.

Variabler

page=whatsmyip Öppna sidan Visa enbart IP i BendCMS.

aid=23 IP-konto med id 23. Det är alltså IP-kontots id-nummer och inget annat som avses.

pwd=mypass Lösenordet till angivet konto är mypass

Returvärde

IP-adressen skrivs ut i klartext, utan html-kod, om inga fel påträffas.

 

Sidan Omdirigera

Automatisk omdirigering till senast lagrade IP för angivet IP-konto.
Sidan har inget grafiskt gränssnitt och visas inte i menyn.

Exempel:

http://example.com?page=bendip/redirect&aid=23&pwd=mypass

Om något går snett returneras meddelanden i klartext, utan html-kod.

Ingående filer

Filer i BendCMS som enbart används till BendIP.

~/sysConfig/BendIPAccountConfig.php

~/sysConfig/BendIPDataConfig.php

 

~/phpFunctions/getBendIpData.php

 

~/pageLogic/bendIpAccount.php

~/pageLogic/bendIpInfo.php

~/pageLogic/bendIpRedirect.php

~/pageLogic/bendIpShow.php

~/pageLogic/bendIpUpdate.php

 

~/pageContent/61.php till 65.php

 

~/pageConfig/61.php till 65.php

 

~/pageData/BendIP/accounts.csv

~/pageData/BendIP/ipData_n.csv (n byts mot BendIP-kontots id-nummer)

 

Kommentarer till sidan BendIP