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

Frage Entwicklung PHP

Mitglied: xp-user

xp-user (Level 2) - Jetzt verbinden

29.12.2010, aktualisiert 18.01.2011, 4809 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
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 StundeBatch & Shell1 Kommentar

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 3 StundenHumor (lol)5 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 18 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 19 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Linux
OpenSource Groupware
Frage von FA-jkaLinux13 Kommentare

Hallo, ich suche eine Groupware als Alternative zum Exchange. Wesentliche Aufgaben sind die Handhabung von E-Mails (persönliche und gemeinsam ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...