Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzenie, czy rekord jest Adresem IP
Forum PHP.pl > Forum > Przedszkole
Malinaa
Witam, czy kotoś może zaproponować kod, który sprawdzi czy dany rekord jest Adresem IP?

Nieco inna sprawa, ale związana z tematem:
Adresy IP mogą się zmieniać dla komputera, w zależności od sieci (o ile wiem).
Jeśli tak jest. Jak za pomocą np. cookies rozpoznać użytkownika i określić, że przybywa na strone kolejny raz i jego IP jest zmienne? (Komunikat typu: Sieć, z której korzystasz przydziela różne, zmienne Adresy IP).
AdvMDev
Preg? W końcu zawsze IP to cztery liczby rozdzielone kropkami...
Drugie: dać userowi jakieś id w cookie i sprawdzać REMOTE_ADDR.
flashdev
http://ip.boo.pl/ip.php

Tutaj możesz sprawdzić kto jest dostawcą połączenia internetowego na podstawie IP. Dostajesz też pulę adresów IP jakie ten dostawca posiada.
U dostawcy interneetu na pewno można sprawdzić czy dynamicznie przydziela IP. Byćmoze są jakieś bazy z takimi danymi.
dr_bonzo
Cytat
Witam, czy kotoś może zaproponować kod, który sprawdzi czy dany rekord jest Adresem IP?


ip2long" title="Zobacz w manualu PHP" target="_manual i DOCZYTAJ szczegoly w manualu
Malinaa
Adres IP może byc bardzo różny jest przekazywany z formularza (zależy co kto wymyśli)
Przykładowo:
$ip = 'ala, _127.0.0, 127.0.0.1, 200.100.0, 200.200.200.200';

AdvMDev, trudno domyślić się o czym piszesz Preg? ...(Preg_match)? Dobrze, że logicznie się rozumiemy, ale tyle to ja też wiem, a rzecz w szczegółach. Po pierwsze i po drugie same, same.

flashdev, nie tego szukam.

dr_bonzo, dziękuje troszke pomogło, ale nie rozwiązało problemu, może nie potrafię doczytać (jeśli nie po polsku)

Mam:
<?php
// Sprawdzenie IP
$long = ip2long($ip);
if ($long == -1 || $long === FALSE) {
$kom = 'IP Nie prawidłowe!';
} else {
$kom = 'IP OK!';
}
echo $kom;
?>
problem, że np. dla 200.100.0 wynik jest OK?
dr_bonzo
@Malina

Zadajesz nieprecyzyjne pytania
Cytat
Witam, czy kotoś może zaproponować kod, który sprawdzi czy dany rekord jest Adresem IP?

Potem sie dziwisz ze nasze odpowiedzi nie rozwiazuja twojego problemu ktory jak sie POZNIEJ okazuje jest duuuzo bardziej skomplikowany.

Cytat
$ip = 'ala, _127.0.0, 127.0.0.1, 200.100.0, 200.200.200.200';

No i co z tego kodu wynika? NIC. Bo ten string NIE jest adresem IP (a mialem sprawdzic czy REKORD JEST adresem IP). Nie podales jak skrypt ma rozumiec tego stringa, jak IP, ma wyszukac go w srodku czy jak?questionmark.gif?


No to jak nie dziala ci ip2long, to rozbij stringa po kropce (explode()), policz elementy i sprawdz czy kazdy z nich jest liczba 1/0 do 255
Malinaa
Pytanie jest jasne: Sprawdź czy rekord jest Adresem IP?

Myląca, może być kolejna odpowiedź, gdzie skróciłem wystąpienia rekordów IP do stringa, rozdzielając je przecinkiem
$ip = 'ala, _127.0.0, 127.0.0.1, 200.100.0, 200.200.200.200';
Adresy IP są to osobne rekordy, bardziej precyzyjnie będzie tak:
$ip = 'ala';
$ip = '_127.0.0';
$ip = '127.0.0.1';
$ip = '200.100.0'; <--
$ip = '200.200.200.200';
$ip = '127.0'; <--
$ip = '127'; <--

Pozostało:
- rozpoznać IP zaznaczone symbolem <-- (200.100.0, 127.0 i 127), które ip2long rozpoznaje jako IP, np. 127 jest tylko liczbą, nie Adresem IP, ZROBIONE
- oraz wcześniej wspomniane cookies, jeśli jest mozliwe do zastosowania dla przykładu, o którym niestety nie mam pojęcia, nic wcześniej z cookies nie robiłem i potrzebuję więcej precyzyjnych informacji. Jak sprawdzić, czy użytkownik odwiedza stronę pierwszy, czy kolejny raz i czy jego IP (komputera w Sieci) jest zmienne, czy stałe. ZROBIONE

Thank's
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.