IP Opslaan [CLASS]

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Paco oste

Paco oste

22/12/2010 18:40:26
Quote Anchor link
Hallo, ik ben aan een nieuwe source bezig, omdat ik net terug me PHP & mySQL Ben begonnen.
Nu wou ik Graag iets doen maar ik zou me god niet moeten weten hoe ik hier aan begin, kan iemand mij helpen?
Wat ik dus wil doen, is een IP Opslaan scriptje maken.
Wat ik in dit scriptje wil is:
- IP Opslaan in MYSQL Database (Connection staat all in een class Connection_class.php)
- Checken of het IP all in de Database staat als dit is niet opslaan.

Hopelijk dat iemand mij hier mee kan helpen, met vriendelijke groet Paco/Jannick Oste.
 
PHP hulp

PHP hulp

24/12/2024 17:33:55
 
Ozzie PHP

Ozzie PHP

22/12/2010 18:42:52
Quote Anchor link
Paco oste op 22/12/2010 18:40:26:
Hallo, ik ben aan een nieuwe source bezig, omdat ik net terug me PHP & mySQL Ben begonnen.

Wat is dit voor zin?????

Anyhow, wat is je vraag. Verwacht je dat wij een script voor je gaan maken?
 
Arjan -

Arjan -

22/12/2010 18:44:31
Quote Anchor link
Wat heb je zelf al geprobeerd? Weet je al hoe je een mysql connectie moet opzetten en hoe je gegevens uit de database kan halen / wijzigen / verwijderen?

Anders even dit doornemen: http://www.phptuts.nl/view/41/
 
Yea Rupie

Yea Rupie

22/12/2010 18:46:32
Quote Anchor link
- Hoe kom ik aan het ip adres? : getenv('REMOTE_ADDR')
- Hoe kan ik het ip adres zo klein als mogelijk opslaan? In een INT unsigned
- Hoe zet ik hem erin? INET_ATON($IP)
- Hoe haal ik hem eruit? INET_NTOA($ip)

Ja gewoon beginnen en kijken waar je vastloopt?
 
Arjan -

Arjan -

22/12/2010 19:10:14
Quote Anchor link
Beter is om $_SERVER["REMOTE_ADDR"] te gebruiken (zie http://php.net/manual/en/function.getenv.php)
 
Maarten PHP

Maarten PHP

22/12/2010 20:48:46
Quote Anchor link
scripts? tutorials? op phphulp of sitemasters.be
 
Niels K

Niels K

22/12/2010 20:59:21
Quote Anchor link
Quote:
Nu wou ik Graag iets doen maar ik zou me god niet moeten weten hoe ik hier aan begin, kan iemand mij helpen?

God kan alles, dus daar zal het probleem niet liggen.

Maar goed, heel summier moet je het volgende doen:

- Connectie op halen en deze in een variabele gooien, weet niet hoe je dit geregeld hebt, maar goed daar kom je denk ik wel uit, start connectie evt nog.

- Haal het IP adres op via $_SERVER['REMOTE_ADDR'] zoals hierboven al is verteld

- Maak een query die lijkt op de volgende,
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$query
= 'SELECT ipadres FROM tabelwaarinjedezeopslaat WHERE ipadres = ' .mysql_real_escape_string( $ipadres ). ' ';
?>

variabele $ipadres moet dus de waarde bevatten van $_SERVER['REMOTE_ADDR'].
mysql_real_escape_string geeft een stukje extra beveiliging voor het geval dat iemand de $_SERVER variabele heeft aangepast. Evt, kan je met een regex nog controleren of het daadwerkelijk een IP adres is, maar ik zal het gewoon zo laten.

Om te controleren of er resultaat is moet je iets als het volgende gebruiken

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
if( $result = mysql_query( $query ) ) {
    // Het betekend dus dat de query gelukt is, nu kunnen we beginnen met het opvragen van het evt resultaat
    if( mysql_num_rows( $result ) == 0 ) {
        // Geen resultaat, je kan dus nu een insert query doen, google hier even op, zodat je weet hoe je deze moet maken
    }
?>


Al met al, heel simpel dus. Maar goed, als je al wat in OO doet, kan je dit beste ook in OO doen. Maar goed, jouw keuze.
Gewijzigd op 22/12/2010 21:00:10 door Niels K
 
Yea Rupie

Yea Rupie

22/12/2010 23:07:48
Quote Anchor link
Arjen - op 22/12/2010 19:10:14:
Beter is om $_SERVER["REMOTE_ADDR"] te gebruiken (zie http://php.net/manual/en/function.getenv.php)

Waarom zou dit beter zijn?
Zelf gebruik ik ze meestal samen, want bij transparante proxy ip adressen geeft $_SERVER het proxy ip-adres weer en getenv() het echte ip adres.
 
Chris -

Chris -

23/12/2010 08:22:42
Quote Anchor link
Yea Rupie, onzin :-)

$_SERVER['REMOTE_ADDR'] == getenv('REMOTE_ADDR') == een echt ip adres

$_SERVER['HTTP_X_FORWARDED_FOR'] == door de browser mee te geven variabele, niet te vertrouwen dus.

Het uiteindelijke IP-adres verkrijgen, als de bezoeker gebruik maakt van een goede proxy, is niet mogelijk..
 
Rob Quist

Rob Quist

23/12/2010 09:28:53
Quote Anchor link
Niels Kieviet op 22/12/2010 20:59:21:
God kan alles, dus daar zal het probleem niet liggen.


Excuse me if I laugh.

Nutteloos bericht - Je bericht voegt niets toe. Zou je hier alsjblieft op kunnen letten? Dank :-)[/modedit]
Gewijzigd op 23/12/2010 10:04:50 door Chris -
 
TJVB tvb

TJVB tvb

23/12/2010 09:50:39
Quote Anchor link
Offtopic:

@Rob, jammer dat je alleen een totaal irrelevant bericht plaatst. Andere mensen zullen om jou lachen omdat jij daar om lacht.


@Yea Rupie, volgens mij kom jij in de problemen met IPv6. Het zou handig zijn om daar nu alvast rekening mee te houden.
 
Yea Rupie

Yea Rupie

23/12/2010 11:51:43
Quote Anchor link
Ja, ik zal het even aanpassen op mijn website. Als het goed is staat het toch allemaal in 1 log class. Bedankt voor de tips ;)

Edit:

Is het dan ook niet aan te raden om een ip op te slaan met INET_ATON() en INET_NTOA() ?
Gewijzigd op 23/12/2010 11:59:04 door Yea Rupie
 
Arjan -

Arjan -

23/12/2010 13:54:07
Quote Anchor link
Yea Rupie op 22/12/2010 23:07:48:
Arjen - op 22/12/2010 19:10:14:
Beter is om $_SERVER["REMOTE_ADDR"] te gebruiken (zie http://php.net/manual/en/function.getenv.php)

Waarom zou dit beter zijn?
Zelf gebruik ik ze meestal samen, want bij transparante proxy ip adressen geeft $_SERVER het proxy ip-adres weer en getenv() het echte ip adres.



Zie de link ("The function 'getenv' does not work if your Server API is ASAPI (IIS). So, try to don't use getenv('REMOTE_ADDR'), but $_SERVER["REMOTE_ADDR"].") en op Google is ook te vinden dat de combinatie ASAPI en getenv niet optimaal werkt. $_SERVER['REMOTE_ADDR'] zal op elk platform werken.
Gewijzigd op 23/12/2010 13:55:36 door Arjan -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.