Gå til innhold

Hente ut tekst fra en annen webside med php


Anbefalte innlegg

Hei

 

Jeg trenger i forbindelse med jobb å hente ut ipadressen min fra www.whatismyip.com. Kan såklart gå til den siden å se ip'n, men jeg prøver heller å samle infoen i ett eksisterende overvåkningssystem.

 

Hvordan går jeg frem for å hente ut akkurat ipadressen på den siden?

Lenke til kommentar
Videoannonse
Annonse

$_SERVER['REMOTE_ADDR'] viser ip-adressen til klienten, ikke server.

 

Etter litt kikking i manualen fant jeg denne snutten:

if ($_SERVER['HTTP_CLIENT_IP']) {
$IP = $_SERVER['HTTP_CLIENT_IP'];
}
elseif ($_SERVER['HTTP_X_FORWARDED_FOR']) {
$IP = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif ($_SERVER['HTTP_X_FORWARDED']) {
$IP = $_SERVER['HTTP_X_FORWARDED'];
}
elseif ($_SERVER['HTTP_FORWARDED_FOR']) {
$IP = $_SERVER['HTTP_FORWARDED_FOR'];
}
elseif ($_SERVER['HTTP_FORWARDED']) {
$IP = $_SERVER['HTTP_FORWARDED'];
}
else {
$IP = $_SERVER['REMOTE_ADDR'];
}

 

Finner ikke den noen proxyservere, vil den vise brukerens ip. Tror jeg.

Lenke til kommentar

Fikk ingen ip om jeg dro en "echo $ip;" etter dette. Når jeg forsøkte en og en var det kun den siste 'remote_addr' som ga en ip...

 

Men uansett... er det ingen som kan fortelle meg hvordan jeg henter ut en spesiell tekst eller ett tall (i dette tilfellet en IP-adresse) fra ett annet nettsted?

 

Denne gangen vil jeg da altså ha ip'adressen som står på www.whatismyip.com...

Endret av JV
Lenke til kommentar

<?php
$text = strip_tags(file_get_contents("http://cgi.tele2.no/cgi-bin/ip.cgi"));
$textArray = explode(":", $text); // Kan sikkert løses med REGEXP, men det kan jeg ikke :P
echo $textArray[1];
?>

 

Ikke testet...

Valgte Tele2 sin, da denne er mye lettere, da den har mindre tekst å strippe bort. ;)

Endret av ZoRaC
Lenke til kommentar

Dette begynner å ligne... bortsett fra at det ikke funket hos meg... ;)

 

Fatal error: Call to undefined function file_get_contens() in C:\wamp\www\test\index.php on line 2

 

EDIT: Skrivefeil ser jeg... skal være file_get_contents ? tester nå...

Endret av JV
Lenke til kommentar

hmmmm...

 

Warning: file_get_contents(http://cgi.tele2.no/cgi-bin/ip.cgi) [function.file-get-contents]: failed to open stream: Et tilkoblingsforsøk mislyktes fordi den tilkoblede parten ikke svarte på riktig måte etter en tidsperiode, eller den etablerte tilkoblingen mislyktes fordi den tilkoblede verten ikke svarte. in C:\wamp\www\test\index.php on line 2

 

Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\test\index.php on line 2

Lenke til kommentar

Med den siste der får jeg:

 

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Kjenner ingen slik vert. in C:\wamp\www\test\index.php on line 2

 

Warning: file_get_contents(http://www.whatismyip.com) [function.file-get-contents]: failed to open stream: No error in C:\wamp\www\test\index.php on line 2

Lenke til kommentar
Skal vi se om vi faar det til da.. :)

PHP

<?php

$page file_get_contents('http://www.whatismyip.com');

preg_match ("/displaycopy\('(.*)'\)/U"$page$matches);

$ip $matches[0];

?>

 

Tror den skal funke :)

7391201[/snapback]

Den viste også "displaycopy()", men om man endret den slik, så kom kun ip.

<?php
$page = file_get_contents('http://www.whatismyip.com');
preg_match_all ("/displaycopy\('(.*)'\)/U", $page, $matches);
$ip = $matches[1][0];
//print_r($matches);
echo $ip;
?>

 

JV: At du ikke får bruke enkelte funksjoner er pga php.ini. Ta et googlesøk på feilmeldingen, så kommer det sikkert opp en måte å fikse det på.

Lenke til kommentar

Tusen takk for hjelpen alle sammen...

 

ble denne til slutt:

 

<?php
$page = file_get_contents('http://www.whatismyip.com');
preg_match_all ("/displaycopy\('(.*)'\)/U", $page, $matches);
$ip = $matches[1][0];
//print_r($matches);
echo $ip;
?>

 

den funket fint hjemme.. men ikke på jobb.. hmm.. merkelig...

 

btw.

 

Noen som gidder å prøve å forklare meg hvordan jeg bruker preg_match_all? Virker utrolig spennende... nesten som magi :D

 

Jeg prøvde å lese på php.net men forstod desverre ikke stort mer av det... :(

Endret av JV
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...