2009-08-08, 10:29
  #1
Medlem
Hej!

Jag blev bestulen på min laptopp igår! :-( så nu undrar ja om det går att lägga in en krabba som skickar den tilldelade IP-adressen till min mail ifall den nya burken blir stulen?
Citera
2009-08-08, 14:33
  #2
Medlem
smurfehs avatar
Back to my mac is your friend!
Citera
2009-08-08, 15:27
  #3
Medlem
_Fiskarns avatar
Undercover är nog snäppet vassare på alla sätt, kika gärna på det:

http://www.macupdate.com/info.php/id/20425/undercover
Citera
2009-08-08, 16:38
  #4
Medlem
flipper1446s avatar
Jag kör med detta (snott från en gammal 99mac-tråd som jag inte orkar leta på).
Det är inte jag som skrivit, lämnar namnet för credit.
Förutsätter att du har tillgång till ett webbhotellskonto eller egen webbserver.
Citat:
Hej!

Jag läste tråden på 99mac.se om personen som blev bestulen på sin
Powerbook och hittade den genom att spåra ip-numret som datorn fick då
den användes av tjuven. Jag insåg då att jag skulle behöva ett sätt
för att själv snabbt kunna se var datorn befinner sig utifall att den
blev stulen, helst av allt ett sätt som är svårt att upptäcka för
tjuven. Nu hade personen tur som lyckades få tjuven att gå in på en
hemsida så att han avslöjade ip-numret, och det borde finnas smidigare
sätt. Hittade en lösning som dessvärre visade sig kosta 25 dollar, så
istället snickrade jag ihop en egen lösning med cron och php. Postar
den lösningen till Tempen-listan eftersom det kan tänkas finnas någon
här som har användning av informationen.

All användning av informationen sker på egen risk kanske bör
tilläggas, vill inte att någon arg person kommer och skäller på mig
för att jag har förstört dennes OSX-installation.

För att det ska fungera krävs det att man har tillgång till en dator
eller ett webbhotell som kör Apache, så att php-filen på webbservern
kan köras. Lösningen går ut på att man har ett php-script på servern,
som när det anropas loggar IP-numret på klientdatorn i form av en
textfil i samma katalog som heter iplog.txt. Genom att använda cron
kan man få programmet curl att anropa sidan en gång i minuten, och man
kan på så sätt hela tiden, tills tjuven får för sig att tömma
hårddisken eller ta bort cronjobben, få reda på var datorn är genom
att kolla textfilen på webbservern. För att nollställa
adminstratörslösenordet till OS X krävs Panther-installationsskivorna,
gissar att inte alla bär omkring på en sådan så filen lär inte tas
bort i första taget.

Php-filen som ska ligga på webbservern finns på
www-und.ida.liu.se/~johli392/macfeber/getip.php.txt
PHP-koden är skriven av Jonas Tull (credit where credit is due). Döp
om filen till getip.php (alltså utan filändelsen txt) och lägg den på
godtycklig plats på webbservern. Kan vara bra att ha den gömd på
servern i någon obskyr katalog så inte vem som helst kan hitta filen
och se var din dator befinner sig genom att läsa filen iplog.txt

För att php-filen ska kunna skriva logfilen till hårddisken på
webbservern krävs att det finns en textfil där som Apache har
rättigheterna att skriva till. Ladda därför upp en tom fil som du
döper till iplog.txt, och sätt rättigheterna på filen till 777 (alla
får skriva och läsa filen). Sätta rättigheterna på filen kan göras
genom programmet Transmit, genom att man högerklickar och väljer
"Info" och sedan klickar i alla rutor. Man kan även göra det genom att
ssh:a till servern och sedan (när man befinner sig i samma katalog som
filen) skriva "chmod 777 iplog.txt".

För att sedan få OS X att anropa php-scriptet en gång i minuten, med
programmet curl, krävs det att man lägger till det som ett cronjobb.
Detta sker genom att man lägger till en rad för det i crontab, något
som kräver att man har adminstratörlösenordet för datorn.

Säkerhetskopiera först filen:
sudo cp /etc/crontab /etc/crontab.backup

Eftersom filen krävs för att OSX ska fungera bra är det bra med backup.

Öppna sedan filen i Emacs
sudo emacs /etc/crontab

Längst ner i filen lägger du till raden:
*/1 * * * * root /usr/bin/curl
http://www.din_server.se/katalog/filnamn.php

Det säger åt cron att en gång per minut anropa programmet curl så att
det anropar php-skriptet och det kan logga data. Byt ut
http://www.din_server.se/katalog/filnamn.php mot adressen till den
plats där du har lagt php-skriptet. Vill du ha redundans ifall en
server skulle gå ner är det bara att lägga skriptet på en till server
och då också lägga till en till rad i /etc/crontab

Lägg till en tom rad under den sista raden.
Spara sedan filen och avsluta Emacs genom att trycka:
ctrl+x + ctrl-s + ctrl-x + ctrl-c

Nu ska allt fungera som det ska, och php-filen på servern ska anropas
en gång per minut. Om du inte har ändrat på koden i php-filen ska all
data hamna i filen iplog.txt i samma katalog som php-filen. Den
senaste informationen är sist i filen.

Php-filen är det fritt fram att modifiera. Som det är nu plockar den
bort de äldsta ip-numrena så filen håller sig under 1 Mb i storlek.
Detta kan inaktiveras genom att kommentera bort raden (genom att
skriva // framför raden). Det är också enkelt att ändra namnet som
filen som IP-numrena ska loggas det, det är bara att byta ut iplog.txt
mot något bättre (och sedan ladda upp en fil med fulla rättigheter med
samma namn till servern).

Hoppas det fungerar bra.

Johan Lindqvist
Kod:
<?

// Detta är filen du lägger på din webbserver


// filnamn att skriva till
$logfile "iplog.txt";

// största storlek på filen, efter den nått denna storlek kapas
// till hälften. (för att inte behöva kapa varje gång :)

// 1MB = 1048576 byte
$maxsize 1048576;


$s $_SERVER["REMOTE_ADDR"];

$h gethostbyaddr($s);


$fw fopen($logfile,"a+");

// låser filen. vet inte om det behövs men säkerhet är en dygd :P
// (kanske inte så bra ändå, om en process stallar, menmen)
flock($fwLOCK_EX);

// om filens storlek är tjockare än största storlek så tar vi
// och sopar bort den äldsta hälften...
// det blir lite kladd kvar överst om flera olika ip:n anslutit. yeye
if (filesize($logfile) > $maxsize) {
   echo 
"Fat file detected!";
   
fseek($fw$maxsize 2);
   
$half_log fread($fwfilesize($logfile) - $maxsize 2);
   
flock($fwLOCK_UN);
   
fclose($fw);
   
$fw fopen($logfile,"w");
   
flock($fwLOCK_EX);
   
fwrite($fw,$half_log);
}

$logentry .= "[" date("Y-m-d H:i:s") . "] - " $s " (" $h ")\r\n";

fwrite($fw,$logentry);

flock($fwLOCK_UN);
fclose($fw);

echo 
"Ok!";
// visar hittillsintill funna saker i loggen:

$fr fopen($logfile,"r+");

$len filesize($logfile);
if(
$len) {
   
$content fread($fr$len);
}
else {
   
$content='';
}

echo 
"<pre>Anslutningar hitills: \n\n";
echo 
$content;

echo 
"</pre>";


?>


Förresten, vad fan menas med krabba?
__________________
Senast redigerad av flipper1446 2009-08-08 kl. 16:41.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in