Avatar billede mikkel_robin Nybegynder
25. marts 2005 - 14:53 Der er 2 kommentarer og
1 løsning

Oversættelse fra PHP

Er der nogen der kan hjælpe mig lidt med at oversætte dette lille PHP script til CGI. Jeg er helt ny i CGI!!

<?php
$cmd = "arp";
exec("$cmd 2>&1", $arp);

foreach ($arp as $key => $value){
    if ($key != "0") {
  $value1 = str_replace(" ", "", $value);
  $value2 = str_replace("ether", "#", $value1);
  $value3 = str_replace("Ceth0", "", $value2);
  $new_value = str_replace("Ceth1", "#", $value3);
  $arp_array = explode("#", $new_value);
  $adr[$arp_array[0]] = $arp_array[1];
  $arp_array = false;
  }
}


foreach ($adr as $key => $value){
$result = array_search($value, $adr);
    if($result !== false && $result != $key){
      $error[$key] = $value;
    $error[$result] = $value;
    }
}

if (is_array($error)){
    echo "This MAC address are used by more clients<br>";
  print_r($error);
}else
    echo "All MAC's OK!";
?>
Avatar billede xohp Nybegynder
09. juni 2005 - 13:33 #1
#!/usr/bin/perl -w

use CGI qw/:standard/;

my $cmd = '/sbin/arp -n';
my @arpout = split(/\n/,`$cmd`);

my %macs = ();
foreach (@arpout) {
  if (m/([12]*\d{1,2}.[12]*\d{1,2}.[12]*\d{1,2}.[12]*\d{1,2})\s+ether\s+([0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2})\s+\w+\s+eth\d+/i) {
    if (!exists($macs{$2})) { $macs{$2} = []; }
    push(@{$macs{$2}},$1);
  }
}

my @error = ();
foreach my $mac (keys(%macs)) {
  if ($#{$macs{$mac}} > 0) {
    push(@error,$mac);
  }
}

print(header,start_html('MAC Check'));

if ($#error > -1) {
  print("These MAC addresses are used by more IP's:<br/>\n");
  foreach (@error) {
    print("$_<br/>\n");
  }
}
else {
  print("All MAC's OK!");
}

print(end_html);

---8<-------------------------------------------------------------------------
OUTPUT:
Content-Type: text/html; charset=ISO-8859-1

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"><head><title>MAC Check</title>
</head><body>All MAC's OK!</body></html>
---8<------------------------------------------------------------------------
... gør det samme som dit, meeeeen at to IP'er har samme MAC betyder jo intet, een computer kan jo nemt have 2, 3, 24, 25, 256 IP'er på et interface, og vist nok også flere... men ok hvis det er IP-overforbrug man er ude efter er checket godt nok.
Avatar billede xohp Nybegynder
09. juni 2005 - 13:37 #2
hrmpf... så laver den cutoff på min lille regex...

der står i rigtigheden:

m/([12]*\d{1,2}.[12]*\d{1,2}.[12]*\d{1,2}.[12]*\d{1,2})\s+ether\s+
([0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2})
\s+\w+\s+eth\d+/i

bare sæt det sammen i een lang linie
Avatar billede mikkel_robin Nybegynder
23. juni 2005 - 07:49 #3
Det var bare super!! Nej en netkort kan nemt ha flere ip'er... men jeg skal bruge det til kontrol... og hvis 2 pc'ere med hver sit hostnavn på hver sin location har samme mac... så er den gal.... kun derfor...

Men endnu engang tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester