IP's registreren

Alles over programmeren en development binnen de IT-wereld
Plaats reactie
Gebruikersavatar
Pi R²
Elite Poster
Elite Poster
Berichten: 811
Lid geworden op: 03 jan 2003, 17:15
Locatie: Sint-Niklaas
Contacteer:

Kent er iemand een functie waarmee ge de IP's kunt zien van de computers die op een bepaalde pagina gaan (van bv. iedereen die een bericht op een gastenboek post) ?

Kunt ge dat ook met $_SERVER[] doen? En wat moet er dan tussen die haken?
Lang Leve Mijn Eigen! Het geheim voor een lang leven: niet stoppen met ademen
Gebruikersavatar
The Oddity
Elite Poster
Elite Poster
Berichten: 5008
Lid geworden op: 15 sep 2002, 17:58
Locatie: Belgium, Ghent
Contacteer:

Als ik mij niet vergis bestaan er verscheidene methodes, maar dit werkt:

Code: Selecteer alles

{$_SERVER['REMOTE_ADDR']}
Dat zou het moeten doen.

Have fun.
I love it when a plan comes together!
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16757
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 582 keer
Bedankt: 780 keer
Provider

Da's geen functie maar een servervariabele ja:

Je kan het adres van een bezoeker te weten komen met

Code: Selecteer alles

<? echo $HTTP_SERVER_VARS['REMOTE_ADDR'] ?>
of de verkorte versie met enkel $_SERVER (afhankelijk van de php-versie.

Het opslaan van die gegevens zal wel lukken zeker?
Gebruikersavatar
Pi R²
Elite Poster
Elite Poster
Berichten: 811
Lid geworden op: 03 jan 2003, 17:15
Locatie: Sint-Niklaas
Contacteer:

Allemaal bedankt. Ja, opslaan van gegevens das toch altijd hetzelfde, da lukt wel. Alleen wat erin moet, das altijd ff zoeken naar hoe ge daar allemaal aankomt.
Lang Leve Mijn Eigen! Het geheim voor een lang leven: niet stoppen met ademen
Gebruikersavatar
All Your Base
Plus Member
Plus Member
Berichten: 190
Lid geworden op: 17 sep 2002, 11:57

kijk ook de gethostbyaddr() functie eens na, kan handig zijn...

http://www.php.net/manual/en/function.gethostbyaddr.php
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01

Er zijn verschillende manieren maar $_SERVER['REMOTE_ADDR']; en $_SERVER['HTTP_X_FORWARDED_FOR']; zijn de belangrijkste, waarom, een proxy:

if($_SERVER['HTTP_X_FORWARDED_FOR'] != NULL)
{
echo "door de proxy (".gethostbyaddr($_SERVER['REMOTE_ADDR']).") getrokken, uw ip is ".$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
echo "gene proxy en uw ip is ".$_SERVER['REMOTE_ADDR'];

}

simpel toch :)
Spirit Wolf
Starter
Starter
Berichten: 8
Lid geworden op: 09 mei 2003, 20:48

Hei,

heb in mijn guestbook ook gezorgd dat ik het ip-adres krijg van degene die erin posten (deze laat ik wel niet zien, maar is enkel voor mij zodat ik weet wie de heriestokers zijn).
Probleem: mijn server/webruimte voor mijn gb is op lycos.nl. Nu wanneer ik mijn tabel nakijk, zie ik dat elke ip-adres praktisch hetzelfde is (heb ook ene van duitsland er laten in schrijven en ip-adres verschillede enkel het laatste cijfer ). En wanneer ik erin schreef klopt het ip-adres ook niet met wat ik heb. Komt dit door lycos of heb ik iets verkeerd gedaan????

ik gebruik het volgende voor het ip-adres te verkrijgen:
$ip = getenv("REMOTE_ADDR");

Kan iemand me helpen???

Thnx
Bye
Grtz
Spirit Wolf
pleas visit www.kathleen.be.tf for my girlfriend
Gebruikersavatar
Pi R²
Elite Poster
Elite Poster
Berichten: 811
Lid geworden op: 03 jan 2003, 17:15
Locatie: Sint-Niklaas
Contacteer:

getenv(); , ik zou niet weten voorwat dat dient, maar ik geberuikt:

Code: Selecteer alles

$ip = $_SERVER["REMOTE_ADDR"]
Je moet er ook voor zorgen dat je in je mysql tabel een gewone tekst, blob-kolom gebruikt, geen numeriek kolomtype.
Lang Leve Mijn Eigen! Het geheim voor een lang leven: niet stoppen met ademen
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16757
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 582 keer
Bedankt: 780 keer
Provider

Pi R² schreef:getenv(); , ik zou niet weten voorwat dat dient, maar ik geberuikt:

Code: Selecteer alles

$ip = $_SERVER["REMOTE_ADDR"]
Je moet er ook voor zorgen dat je in je mysql tabel een gewone tekst, blob-kolom gebruikt, geen numeriek kolomtype.
Blob dient niet om tekst op te slaan! Blob is om binaire gegevens op te slaan. Als je dan toch tekens wilt opslaan is "text" meer geschikt (is uiteindelijk even groot, maar dient voor tekst-tekens).
Maar voor een ip op te slaan zou ik varchar(15) gebruiken, dat is voldoende (IPv5-adressen worden toch nooit langer dan 15 tekens - xxx.xxx.xxx.xxx).

getenv() dient om gegevens op te vragen uit omgevingsvariabelen. Correcter gebruik zou zijn $_ENV["REMOTE_ADDR"]. Normaal gezien is dit hetzelfde resultaat als $_SERVER["REMOTE_ADDR"].

Wat je kan doen om eens te kijken wat het IP-adres in je DB écht is, is de ip-adressen eens tracen (in een dos-venster "tracert xxx.xxx.xxx.xxx"). Of je bouwt dit ook in in je gastenboek. In php vraag je dan:

Code: Selecteer alles

gethostbyaddr($_SERVER["REMOTE_ADDR"])
Het zou kunnen dat de 'fout' ligt aan lycos, maar dan zou ik dat toch iets vreemds vinden. Ben je zeker dat je zelf nergens iets fouts opslaat?
Spirit Wolf
Starter
Starter
Berichten: 8
Lid geworden op: 09 mei 2003, 20:48

hei,

alvast bedankt.
$ip = gethostbyaddr($_SERVER["REMOTE_ADDR"]); werkt dus ongeveer wel. Heb het bij mijn eigen geprobeerd. Het rare is nu wel het volgende:
Heb in mijn tabel gekeken, en daar stond
60.61-200-80.adsl.sk terwijl mijn ip op dat moment
ip-adres van server 80.200.61.1
en ip-adres van client 80.200.61.60

het zal dus wel van het tweede zijn, maar dan omgekeerd. Is dit normaal??? of moet het toch nog iets anders.

Ik ga terwijl nog wat proberen uit te vissen.

thnx
bye

btw, kunnen hier geen attachements worden gezet???
Grtz
Spirit Wolf
pleas visit www.kathleen.be.tf for my girlfriend
Spirit Wolf
Starter
Starter
Berichten: 8
Lid geworden op: 09 mei 2003, 20:48

allez, het is niet meer nodig

als je $ip = $_SERVER["REMOTE_ADDR"]; doet in plaats van $ip = gethostbyaddr($_SERVER["REMOTE_ADDR"]); krijg je het ip-adres :-)

thnx anyway

bye
Grtz
Spirit Wolf
pleas visit www.kathleen.be.tf for my girlfriend
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16757
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 582 keer
Bedankt: 780 keer
Provider

Jaja :-)

die gethostbyaddr() dient om een dns-lookup te doen van een ip-adres. In dit geval wordt 80.200.61.1 omgezet naar 60.61-200-80.adsl.skynet.be (dat is de dns-naam van dat ip-adres). Ik gaf dat als tussenoplossing omdat je zegt dat het lijkt alsof alle ip-adressen hetzelfde zijn. Als je de dns-naam ziet kan je meestal snel afleiden uit welk land de bezoekers komen en welke provider ze gebruiken.

En nee, de attachment mod is niet op dit forum geïnstalleerd, en ik betwijfel of dat wel ooit zal komen.
Gebruikersavatar
Erik
Elite Poster
Elite Poster
Berichten: 1321
Lid geworden op: 15 sep 2002, 02:46
Uitgedeelde bedankjes: 2 keer
Bedankt: 18 keer

Pi R² schreef:getenv(); , ik zou niet weten voorwat dat dient, maar ik geberuikt:

Code: Selecteer alles

$ip = $_SERVER["REMOTE_ADDR"]
Je moet er ook voor zorgen dat je in je mysql tabel een gewone tekst, blob-kolom gebruikt, geen numeriek kolomtype.
getenv(); haalt een envirement variable op $SERVER_PORT ,SERVER_SOFTWARE etc etc

de $_SERVER is de nieuwste manier om dit soort zaken te doen



attachement mod ? nee en wij hebben ook geen plannen om dit in de toekomst gaan te installeren

greetz

Erik
Registered Linux user #286313
Plaats reactie

Terug naar “Development”