-
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
Cara... damn delphi sux :) eu nao sei programar em nada..
bom o caso eh o seguinte, de posse da string voce da um jeito de achar os pontos e entao sair quebrando
strpos oui algo tipo pode te ajudar... nao lembro mas das funcoes... eu so programei em delphi por 3 meses entao.. to nem ae para ele :)
outra coisa, para saber se um ip pertence a mesma faixa de outro voce tem que dar a mascara de rede, e ELA que diz se pertence ou nao, sacou ?? prescisa estar na mesma rede.
se tiver duvida nessa parte leia sobre ip, camada 3 modelo osi
-
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