Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
Kommentar vom Moderator Dani am 29.12.2010 um 11:32:42 Uhr
Formatierungshilfen bitte benutzen!

gelöst PHP Script zeigt weiße Seite an

Mitglied: xp-user

xp-user (Level 2) - Jetzt verbinden

29.12.2010, aktualisiert 18.01.2011, 4824 Aufrufe, 20 Kommentare

Ich versuche mich mit einem Blackliste DNSBL Check PHP Script.
Jedoch hab ich mal wieder Tomaten vor den Augen. ...

Vielleicht sieht jemand warum es nicht klappt. HTML:
01.
<?php  
02.
 
03.
$ip =["ip"]; 
04.
function is_blacklisted($ip) {  
05.
    $dnsbl_check=array("bl.spamcop.net",  
06.
                       "relays.osirusoft.com",  
07.
                       "list.dsbl.org",  
08.
                       "sbl.spamhaus.org");  
09.
    if ($ip) {  
10.
       $quads=explode(".",$ip);  
11.
        $rip=$quads[3].".".$quads[2].".".$quads[1].".".$quads[0];  
12.
        for ($i=0; $i<count($dnsbl_check); $i++) {  
13.
            if (checkdnsrr($rip.".".$dnsbl_check[$i],"A")) {  
14.
                $listed.=$dnsbl_check[$i]." ";  
15.
            }  
16.
         }  
17.
       if ($listed) { return $listed; } else { return FALSE; }  
18.
    }  
19.
}  
20.
?> 
21.
 
22.
 
23.
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"
24.
 <p>IP Lookup: <input type="text" name="ip" /></p> 
25.
  <p><input type="submit" NAME="gesendet" value="Übertragen" /></p> 
26.
</form>
Eigentlich sollte jetzt ein Formular sichtbar sein, wo ich eine ip eingeben kann, welche dann nachschaut ob sie in einer Blacklist gelistet ist. Wenn ja sollte es angezeigt werden...

Leider seh ich nur weiß
Mitglied: thaenhusen
29.12.2010 um 11:20 Uhr
Moin.

Du musst die Funktion die Du geschrieben hast auch aufrufen...
01.
<?php 
02.
$ip = $_GET["ip"]; 
03.
if($ip <> ""){ 
04.
  echo is_blacklisted($ip) . '<br />'
05.
06.
 
07.
function is_blacklisted($ip) { 
08.
  $dnsbl_check=array("bl.spamcop.net"
09.
  "relays.osirusoft.com"
10.
  "list.dsbl.org"
11.
  "sbl.spamhaus.org"); 
12.
  if ($ip) { 
13.
    $quads=explode(".",$ip); 
14.
    $rip=$quads[3].".".$quads[2].".".$quads[1].".".$quads[0]; 
15.
    for ($i=0; $i<count($dnsbl_check); $i++) { 
16.
      if (checkdnsrr($rip.".".$dnsbl_check[$i],"A")) { 
17.
        $listed.=$dnsbl_check[$i]." "
18.
19.
20.
    if ($listed) { 
21.
      return $listed
22.
23.
    else
24.
      return FALSE; 
25.
26.
27.
28.
 
29.
?> 
30.
 
31.
 
32.
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"
33.
<p>IP Lookup: <input type="text" name="ip" /></p> 
34.
<p><input type="submit" NAME="gesendet" value="Übertragen" /></p> 
35.
</form>
Das Skript funktioniert nun so, solltest aber noch etwas daran optimieren, wenn Du das wirklich einsetzten willst.
Also vorallem an der Ausgabe und dem Layout!

HTH
MK
Bitte warten ..
Mitglied: xp-user
29.12.2010 um 11:28 Uhr
Danke für die Antwort
Bitte warten ..
Mitglied: xp-user
29.12.2010 um 11:53 Uhr
Zitat von thaenhusen:

Das Skript funktioniert nun so, solltest aber noch etwas daran optimieren, wenn Du das wirklich einsetzten willst.
Also vorallem an der Ausgabe und dem Layout!

Ich sehe wohl das Formular, jedoch wenn ich eine IP eingebe und diese sende, sehe ich weder ob die IP gelistet ist, noch ob sie nicht gelistet ist.
Bitte warten ..
Mitglied: thaenhusen
29.12.2010 um 14:26 Uhr
Moin.

Dann versuch mal statt

return FALSE;

return "Keine Treffer."

HTH
MK
Bitte warten ..
Mitglied: xp-user
29.12.2010 um 14:46 Uhr
Zitat von thaenhusen:
Moin.

Dann versuch mal statt

return FALSE;

return "Keine Treffer."

HTH
MK

Notice: Undefined index: ip in /test.php on line 14

Line 14:
$ip = $_GET["ip"];
Bitte warten ..
Mitglied: thaenhusen
29.12.2010 um 15:09 Uhr
Moin.
01.
if(isset($_GET["ip"])){ 
02.
  $ip = $_GET["ip"]; 
03.
04.
else
05.
  $ip = ""
06.
}
Und dann in der Funktion abfangen?

HTH
MK

edit by masterG - 04.01.2011 12:50: Bitte Formatierungshilfe verwenden.
Bitte warten ..
Mitglied: xp-user
29.12.2010 um 15:15 Uhr
Zitat von thaenhusen:
Moin.

if(isset($_GET["ip"])){
$ip = $_GET["ip"];
}
else{
$ip = "";
}

Und dann in der Funktion abfangen?


bringt jetzt kein Fehler mehr, aber immer noch kein Resultat


01.
<?php 
02.
error_reporting(E_ALL); 
03.
ini_set('display_errors', 1); 
04.
?> 
05.
<?php 
06.
if(isset($_GET["ip"])){ 
07.
$ip = $_GET["ip"]; 
08.
09.
else{ 
10.
$ip = ""; 
11.
12.
if($ip <> ""){ 
13.
  echo is_blacklisted($ip) . '<br />'; 
14.
15.
 
16.
function is_blacklisted($ip) { 
17.
  $dnsbl_check=array("bl.spamcop.net", 
18.
  "relays.osirusoft.com", 
19.
  "list.dsbl.org", 
20.
  "sbl.spamhaus.org"); 
21.
  if ($ip) { 
22.
    $quads=explode(".",$ip); 
23.
    $rip=$quads[3].".".$quads[2].".".$quads[1].".".$quads[0]; 
24.
    for ($i=0; $i<count($dnsbl_check); $i++) { 
25.
      if (checkdnsrr($rip.".".$dnsbl_check[$i],"A")) { 
26.
        $listed.=$dnsbl_check[$i]." "; 
27.
28.
29.
    if ($listed) { 
30.
      return $listed; 
31.
32.
    else { 
33.
      return "Keine Treffer."; 
34.
35.
36.
37.
 
38.
?> 
39.
 
40.
 
41.
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 
42.
<p>IP Lookup: <input type="text" name="ip" /></p> 
43.
<p><input type="submit" NAME="gesendet" value="Übertragen" /></p> 
44.
</form>
Bitte warten ..
Mitglied: thaenhusen
29.12.2010 um 15:43 Uhr
Moin.

01.
<?php 
02.
error_reporting(E_ALL); 
03.
ini_set('display_errors', 1); 
04.
if(isset($_GET["ip"])){ 
05.
  $ip = $_GET["ip"]; 
06.
07.
else{ 
08.
  $ip = ""; 
09.
10.
echo is_blacklisted($ip) . '<br />'; 
11.
 
12.
function is_blacklisted($ip) { 
13.
  $listed = ""; 
14.
  $dnsbl_check=array("bl.spamcop.net", 
15.
  "relays.osirusoft.com", 
16.
  "list.dsbl.org", 
17.
  "sbl.spamhaus.org"); 
18.
  if ($ip) { 
19.
    echo '123 <br />'; 
20.
    $quads=explode(".",$ip); 
21.
    $rip=$quads[3].".".$quads[2].".".$quads[1].".".$quads[0]; 
22.
    for ($i=0; $i<count($dnsbl_check); $i++) { 
23.
      if (checkdnsrr($rip.".".$dnsbl_check[$i],"A")) { 
24.
        $listed.=$dnsbl_check[$i]." "; 
25.
26.
27.
28.
  if ($listed) { 
29.
    return $listed; 
30.
31.
  else { 
32.
    return "Keine Treffer."; 
33.
34.
35.
 
36.
?> 
37.
 
38.
 
39.
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> 
40.
<p>IP Lookup: <input type="text" name="ip" /></p> 
41.
<p><input type="submit" NAME="gesendet" value="Übertragen" /></p> 
42.
</form>
Dieser Code funktioniert bei mir. Vielleicht kommt Deine Installation nicht mit dem $_GET["ip"] zurecht versuche sonst mal mit $ip zuarbeiten.

HTH
MK
Bitte warten ..
Mitglied: xp-user
29.12.2010 um 15:58 Uhr
Also das Problem lag an dem Formular Input der sollte method="get" sein und nicht method="post"

Einen grossen Schritt weiter...
Bitte warten ..
Mitglied: xp-user
29.12.2010 um 16:29 Uhr
Ich krieg jetzt jedoch diese Fehlermeldung:
Notice: Undefined variable: listed in /test.php on line 33

Line 33:
$listed.=$dnsbl_check[$i]." ";

Jedoch gibt er mir korrekt an ob eine IP gelistet ist, oder eben nicht.
Bitte warten ..
Mitglied: thaenhusen
29.12.2010 um 18:12 Uhr
Moin.

Siehe letztes Posting von mir:

01.
function is_blacklisted($ip) { 
02.
$listed = "";
Dann ist der Fehler weg...
HTH
MK
Bitte warten ..
Mitglied: xp-user
30.12.2010 um 08:51 Uhr
Perfekt wär's, wenn man auch URL/Domains abfragen könnte. Nicht nur IP's

P.S: Sehr gut. Vielen Dank
Jetzt klappt alles bestens.
Bitte warten ..
Mitglied: thaenhusen
30.12.2010 um 10:42 Uhr
Moin.

Also google hätte Dir da auch schnell helfen können. Du solltest Dich mal mit PHP etwas näher auseinandersetzen und dann die Dinge erstmal
selber angehen, dass bringt Dich am Ende weiter...

Aber...

01.
<?php 
02.
  $host = "www.google.de"; 
03.
  $ip = gethostbyname($host); 
04.
  echo $ip; 
05.
?>
... sollte Dir weiterhelfen.

HTH
MK
Bitte warten ..
Mitglied: xp-user
30.12.2010 um 11:42 Uhr
hab mir das Buch \"PHP für Dummies\" gekauft, ... also ich bin schon dabei.

Habe im Bereich PHP wirklich \"Baby-Status\" :-S

Also der Code gibt ja die IP von google.de aus. Wie kann ich das jetzt mit dem Eingabefeld verbinden, so dass ich domain.xy eingeben kann?
Bitte warten ..
Mitglied: thaenhusen
30.12.2010 um 12:02 Uhr
Moin.

Vieleicht in dem Du mit dem Form einen Hostnamen übergibst und dass dann in die gethostbyname()-Funktion steckst,
anstatt die IP direkt zu verarbeiten!?

Also dass sollte doch jetzt auch im Babystatus erkennbar sein.

Du kannst auch zwei Felder übergeben host und ip und musst dann entscheiden was Du prüfst...

HTH
MK
Bitte warten ..
Mitglied: xp-user
30.12.2010 um 12:57 Uhr
Also mit zwei Formularen krieg ich das schon hin, jedoch das weitergeben nicht. Also das es nur ein Eingabefeld benötigt.
01.
<?php  
02.
// Die Abfrage der IP von der Domain 
03.
  if(isset($_GET["host"])){ 
04.
  $host = $_GET["host"]; 
05.
  $iphost = gethostbyname($host);  
06.
  echo $iphost;  
07.
08.
?>
Bitte warten ..
Mitglied: thaenhusen
30.12.2010 um 13:49 Uhr
Moin.

Das wird auch so einfach mit einem Eingabefeld nicht gehen, da Du ja dann prüfen musst, ob es sich um eine IP oder
einen Host handelt.

Das könnte man dann mit reglären Ausdrücken bauen, aber dazu brauchst Du denke ich noch mehr Grundlagen...

Einfach ist es doch folgendermassen:

1. Zwei Eingabefelde Host und IP
2. Wenn IP leer ist Host in IP und dann die Funktion aufrufen

Fertig.

HTH
MK
Bitte warten ..
Mitglied: xp-user
30.12.2010 um 14:39 Uhr
ja mit zwei Formularen funktioniert es einwandfrei. Nur ist das nicht so schick

Ich habe mir folgenden Weg ausgedacht.

Ein Feld. IP / Host
Egal ob eine IP oder eine Domain eingegeben wurde, nach
01.
<?php  
02.
// Die Abfrage der IP von der Domain 
03.
  if(isset($_GET["host"])){ 
04.
  $host = $_GET["host"]; 
05.
  $iphost = gethostbyname($host);  
06.
  echo $iphost;  
07.
08.
?>
erhalte ich $iphost und diese würde ich dann als $ip definieren.
01.
$iphost = $ip;
... aber es klappt nicht
Bitte warten ..
Mitglied: Guenni
07.01.2011 um 22:00 Uhr
Hi xp-user,

. . . erhalte ich $iphost und diese würde ich dann als $ip definieren.

Dann solltest du auch schreiben . . .

$ip = $iphost; ==> Zuweisung von rechts nach links und nicht umgekehrt.

Ich frage mich aber, wenn du mit $iphost = gethostbyname($host);" die IP-Adresse doch schon hast, warum willst du die

denn nochmal in einer anderen Variablen ablegen? Dann zerlegst du diese Variable in ein Array, anschließend verknüpfst du

die Arrayelemente wieder umständlich zu dem, was die IP vorher auch schon war.

$ip="192.168.0.1";

$quads=explode(".",$ip);
$rip=$quads[3].".".$quads[2].".".$quads[1].".".$quads[0];

echo $rip; ==> ergibt: 192.168.0.1


Dann steht im PHP-Manual ==> http://www.php.net/manual/de/function.checkdnsrr.php

Prüft DNS-Einträge auf Übereinstimmung mit einem gegebenen Internet-Host-Namen ODER einer IP-Adresse.

Beachte bitte das Wörtchen ODER. Du aber verknüpfst IP UND Hostname . . .

if (checkdnsrr($rip.".".$dnsbl_check[$i],"A")) . . .

. . . heißt, bei dir steht jetzt da z.B.: "217.150.151.99.www.telekom.de". Also entweder bin ich jetzt zu doof dazu, aber ich sehe

in "deinem" Script, was übrigens schon vor Jahren in PHP-Net "Wort für Wort" veröffentlicht wurde, nicht, wie jetzt die Hosts aus

deiner Blacklist mit der eingegebenen IP in Verbindung gebracht werden. Zumal ich auch als IP "ABC.DFG.XY.r" eingeben kann:

Ein, zwei Hosts werden immer ausgegeben. Ich kann auch meinen Server in die Blacklist eintragen und die IP eingeben. Zumindest

das müsste ja dann funktionieren. Tut's aber nicht. Schreibe ich jedoch if (checkdnsrr($dnsbl_check[$i],"A")) . . . , dann kann

ich auch als IP "ABC.DFG.XY.r" oder sonst was eingeben, dann wird auch mein Server ausgegeben, je nachdem, wie der zweite

Parameter ist, also "A", "MX", "PTR", "SOA" . . . etc.. Dieses "Gefummel" im Script mit einer IP bringt also gar nix. Ich denke mal,

diese Funktion ist eher dazu da, um im "eigenen" Netz(werk) DNS-Einträge zu überprüfen. Dass ein Internet-Host-Name übergeben

werden muß, hat mit Internet selber eher auch nichts zu tuen, sondern heißt wohl nur, das muß ein FQDN-Name sein; subdomain.domain.tld

Es ist eigentlich auch ziemlich sinnfrei, IP-Adressen mit Hosts in Verbindung zu bringen. Dazu gab ja auch schon mal Fragen wie:

"Wie kann ich in meinem Gästebuch eine IP-Sperre einbauen, um Spam zu verhindern?". IP-Adressen werden für einen gewissen Zeitraum

verliehen (siehe Lease-Time). Du legst also meinen Host in deiner Blacklist ab, merkst dir meine IP. Drei Stunden später gehe ich wieder

ins Internet und hab' eine neue IP. Meinen Host findest du mit deiner gemerkten IP (wahrscheinlich) nie mehr wieder.

Also schreib' doch einfach mal, was du überhaupt machen willst. Vielleicht kommen wir dann irgendwie weiter.


Gruß
Günni
Bitte warten ..
Mitglied: xp-user
08.01.2011 um 06:57 Uhr
Danke für die Ausführliche Antwort.


Ich habe das ganze nun anders gelöst. Die Schwachstellen dieses Scriptes wurden mir mit der Zeit auch klar. Wobei die "Zeit" welche es braucht um so eine IP / Host abzufragen schlichtweg zu lange dauert.

Nun nutze ich eine API für ein RBL. Einfach sauber schnell.

Besten Dank

/* gelöst */
Bitte warten ..
Ähnliche Inhalte
PHP

Webseite über PHP Script Seite eines lokalen Servers einbinden

Frage von KV17uwePHP4 Kommentare

Hallo zusammen, ich habe folgendes Problem. Ich möchte eine PHP Webseite als Portal für einen Webdienst eines lokalen Servers ...

Webbrowser

Internet Explorer 11, weiße Seite

gelöst Frage von 120491Webbrowser3 Kommentare

Hallo, bei einem Windows 7 System mit IE11 habe ich das Problem, dass nur bei einer bestimmten Benutzeranmeldung am ...

Ubuntu

PHP - Nur leere Seiten

Frage von UItimateUbuntu6 Kommentare

Hallo. Ich habe gestern auf meinem Raspberry Pi das Betriebssystem Ubuntu MATE 16.04.2 LTS installiert. Apache funktioniert einwandfrei. Wenn ...

Windows Tools

PDF-XChange Viewer zeigt nicht alle Seiten an

Frage von TiTuxWindows Tools

Hallo, wir haben hier PDF-XChange auf unserer RDP-Farm im Einsatz, bis jetzt war auch alles in Ordnung, heute sagt ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...