• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Problem mit Ripe.net Abfrage

dudl313

New member
Moin, moin

ich habe ein Script, das mit einer IP-Adresse eine RIPE Datenbankabfrage ausführt. Das Script funktioniert auch, aber ich komme mit dem Datentyp der zurückgegebeben Werte nicht klar. Hier erst mal das Script:

PHP:
function LoadRipe($search_ip) 
	{ 
    $fp = fsockopen ("whois.ripe.net", 43) or die ("Ripe-Connect-Error!"); 
    fputs($fp, $search_ip."\n"); 
    while (!feof($fp)) 
		{ 
        $output[] = fgets($fp, 2048); 
    	} 
    fclose($fp); 
    return $output; 
	} 


$test = LoadRipe("85.14.233.91");  


$lg = sizeof($test);
for ($i=0; $i<$lg; $i++)
	{
	echo "Feld-Nr. $i:  $test[$i] <br>";
	echo "<br>";
	}

Die Ausgabe der einzelnen Felder funktioniert wie gesagt einwandfrei. Will ich jedoch den Inhalt eines Feldes zwecks weiterer Verarbeitung in eine Variable übertragen,
PHP:
	$ausgabe = $test[i];
	echo "$ausgabe <br>";
bleibt diese anscheinend leer. Ich vermute es liegt am Datentyp. Ein gettype zeigt als Datentyp NULL. Auch eine Umwandlung mit settype ( $ausgabe, 'string' ) funktioniert nicht.

Wie kann ich also den Inhalt der Felder weiterverarbeiten, z.B. suchen nach einer bestimmten Zeichenkette?

Mfg
Dudl313
 
Ändern mal
PHP:
echo "Feld-Nr. $i:  $test[$i] <br>";
in
PHP:
echo "Feld-Nr. $i:  ".htmlspecialchars($test[$i])." <br>";
 
Danke für die Antwort, aber so recht komm ich damit noch nicht weiter. Der zurückgegebene Datentyp ist jetzt anscheinend 'String', aber läßt sich trotzdem nicht verarbeiten.
Ich habe zum testen mal eine Funktion eingebaut, die mir den Inhalt der Felder in einem Meldungsfenster anzeigen soll, aber da passiert rein gar nichts.

PHP:
	function MsgBox($str)
	{
	echo "<script language=\"javascript\">\n";
	echo " alert('$str');\n";
	echo "</script>\n";
	}

function LoadRipe($search_ip) 
	{ 
    $fp = fsockopen ("whois.ripe.net", 43) or die ("Ripe-Connect-Error!"); 
    fputs($fp, $search_ip."\n"); 
    while (!feof($fp)) 
		{ 
        $output[] = fgets($fp, 2048); 
    	} 
    fclose($fp); 
    return $output; 
	} 


$test = LoadRipe("85.14.233.91");  


$lg = sizeof($test);
for ($i=0; $i<$lg; $i++)
	{
	$ausgabe=htmlspecialchars($test[$i]);
	echo "Feld-Nr. $i:  $ausgabe <br>";
	echo gettype ($ausgabe);
	echo "<br>";
	echo "<br>";
	MsgBox($ausgabe);
	}

Der für mich wichtige Befehl ist der letzte in der for-Scheife. Die MsgBox-Funktion hat offensichtlich immernoch Schwierigkeiten mit dem Datentyp. Wenn ich statt der Variable $ausgabe eine andere Variable oder einen statischen Text übergebe, wird das Fensterchen angezeigt.

Wo liegt hier mein Fehler?
 
Das liegt am Zeilenumbruch im String (\n). Das ergibt ein JS Fehler.
 
Den den du in deiner Variable Ausgabe hast. Schau mal in die Fehlerkonsole.
 
Welche Fehlerkonsole und wie komme ich da ran?
Sorry für die dummen Fragen, aber ich bin blutiger Anfänger.
 
OK hab da im Firefox eine Fehlerkonsole gefunden. Der IE scheint so was nicht zu haben. Aber wie kann ich nun den Zeilenumbruch aus meiner $ausgabe Variable entfernen?

Mfg
 
Also ich denke, das Problem ist gelöst. Es lag tatsächlich am Zeilenumbruch am Ende der $ausgabe-Variable und nicht am Datenformat. Mit

PHP:
$ausgabe = preg_replace("/\r|\n/s", "", $test[$i]);

habe ich es entfernt und alles läuft so wie es soll.
Vielen Dank an ToM80 für die Hilfe und Geduld.
 
Zurück
Oben