+ Responder ao Tópico



  1. #1

    Padrão 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...

  2. #2

    Padrão 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.....

  3. #3

    Padrão 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...

  4. #4

    Padrão 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

  5. #5

    Padrão 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