- Strings Delphi
+ Responder ao Tópico
-
Strings Delphi
Pessoal...
To em cima do laço com minha monografia e preciso comparar dois IPs (que estam declaradas como string)
preciso verificar por exemplo se 192.168.1.1 pertence à mesma faixa de rede que 192.168.1.2, coisas do gênero.
Uso Delphi 7
Grato a quem colaborar...
-
Strings Delphi
bom eu nao sei como vc vai implementar isso.....mas acho q vc poderia pegar o IP, dividir em 4 string (no php eu usaria o explode) dai, vc usa a mascara e compara as N primeiras strings q fizerem parte da mascara.....sacow??? ou fico confuso???
tipo....
Mascara = 255.255.255.0
IP1 = 192.168.4.4
IP2 = 192.168.4.5
lista_ip1=[192][168][4][4]
lista_ip2=[192][168][4][5]
como a mascara eh 255.255.255.0 vc vai comparar os 3 primeros elementos, no caso
o 192.168.4 de cada um....se um deles tive diferente do otro eh pq sao diferentes.....eu soh nao sei como vai ficar se vc tiver uma mascara torta...tipo 255.255.69.0....se a mascara for assim, fudencio.....
-
Strings Delphi
ahh cara faz mor tempo que eu não mexo com pascal, e tava meio sem saco de fazer e acabei fazendo em php...
$ext_ip = $_SERVER['REMOTE_ADDR']; //IP do navegador do cara
$int_ip = "192.168.0.0";
$int_ip = explode(".", $int_ip); //cria um array, dividindo pelo ponto "."
$ext_ip = explode(".", $ext_ip);
$class = 0;
for($x = 3; $x > 0; $x--){ //aqui eu descubro qual a classe a partir do int_ip
if($int_ip[$x] == "0"){
$class++;
}else{
break;
}
}
$blocked = false;
for($x = 0; $x < (3 - $class); $x++){ //aqui eu faco a comparacao dos ips, se estao na mesma faixa
if($ext_ip[$x] != $int_ip[$x]){
$blocked = true;
}
}
if($blocked == true){
die("Sorry, but you dont have access to this website. =P");
}
Bom a logica ta aqui, da pra fazer muito mais, é so passar pra pascal...
-
-
Strings Delphi
obrigado a todos.. resolvi o problema com uma miscelânia de funções...
copy entre outras
grato a todos que me ajudaram...
flw