Seite 1 von 1

"whois" bei allow_url_fopen Off

Verfasst: 05.10.2010 17:18
von Izanagi71
Hallo...

wie kann ich die Serverseitig gesperrte Option (siehe Titel des Threads) mittels "cURL" umgehen.

Folgendes Problem:

../viewonline.php ist durch den Link "wer ist online" aufrufbar und funktioniert.
Sobald ich aber "whois" neben dem online User anklicke geht das Popup auf doch der Inhalt der Tabelle, wo eigentlich die Traceroute und alles andere erscheinen müsste, bleibt leer.
Vom Provider weiss ich nun dass es an der im Threadtitel beschriebenen Funktion liegt (da diese standard deaktiv ist) und ich das entweder kostenpflichtig manuell freischalten lassen kann, was ein Sicherheitsrisiko darstellt, oder ich die Funktion cURL benutzen soll.

Wo und wie binde ich cURl nun ein damit "Whois" wieder funktioniert?

Vielen Dank.

Nachtrag 1:

Mittlerweile hab ich herausgefunden dass es in der /includes/functions_user.php geändert werden müsste.
Zumindest stehen da zwei ausschlaggebende Werte auf "fsockopen".
Wie bekomme ich das Ganze jetzt auf curl oder auch libcurl umgeschrieben?
Hat das schon jemand gemacht und enstprechende Snippets für mich?

Nachtrag 2:

Hier wäre noch der entsprechende Codeausschnitt aus der Datei...:

Code: Alles auswählen

/**
* Whois facility
*
* @link http://tools.ietf.org/html/rfc3912 RFC3912: WHOIS Protocol Specification
*/
function user_ipwhois($ip)
{
$ipwhois = '';

// Check IP
// Only supporting IPv4 at the moment...
if (empty($ip) || !preg_match(get_preg_expression('ipv4'), $ip))
{
return '';
}

if (($fsk = @fsockopen('whois.arin.net', 43)))
{
// CRLF as per RFC3912
fputs($fsk, "$ip\r\n");
while (!feof($fsk))
{
$ipwhois .= fgets($fsk, 1024);
}
@fclose($fsk);
}

$match = array();

// Test for referrals from ARIN to other whois databases, roll on rwhois
if (preg_match('#ReferralServer: whois://(.+)#im', $ipwhois, $match))
{
if (strpos($match[1], ':') !== false)
{
$pos = strrpos($match[1], ':');
$server = substr($match[1], 0, $pos);
$port = (int) substr($match[1], $pos + 1);
unset($pos);
}
else
{
$server = $match[1];
$port = 43;
}

$buffer = '';

if (($fsk = @fsockopen($server, $port)))
{
fputs($fsk, "$ip\r\n");
while (!feof($fsk))
{
$buffer .= fgets($fsk, 1024);
}
@fclose($fsk);
}

// Use the result from ARIN if we don't get any result here
$ipwhois = (empty($buffer)) ? $ipwhois : $buffer;
}

$ipwhois = htmlspecialchars($ipwhois);

// Magic URL ;)
return trim(make_clickable($ipwhois, false, ''));
}



Ich benutze im Übrigen "phpbb 3.0.7-pl1" auf einem kostenpflichtigen Host, die URL zum Onlineangebot lautet http://medien-shredder.de (für den Fall der Kontrolle des Copyright).

Re: "whois" bei allow_url_fopen Off

Verfasst: 06.10.2010 20:48
von Izanagi71
1. Frage, was macht das jetzt auf einmal hier?
Ich brauche Support, glaubt der Mod dass es hier eher zu einer Antwort findet?
Naja, so kann man sich den Support auch vom Halse halten - zumal es hier ja ne komische Auffassung von "Support" zu geben scheint.
Nach dem Motto, Support gibts nur wenn jemand die Antwort weiss - so in der Art: "völlig freiwillig, und wenn Du keine Antwort bekommst sei es gefälligst auch zufrieden".
Das verstehe aber weder ich noch Wikipedia unter "Support"!
Aber schön zu wissen dass hier die 24 Std-Regel eingehalten wird indem da komischerweise sofort jemand zur Stelle ist um zu Sanktionieren. :roll:
Beim Support, wie gesagt, siehts dann ganz anders aus...

2. Und jetzt frag ich noch einmal nach ob jemand mir mal bitte erklären könnte wie ich den geschlossenen allow_url_fopen (in besagten Dateiabschnitt die fsockopen-Befehle) durch "curl" oder "libcurl" austauchen/umgehen kann?

Ist im vorigen Text alles ziemlich genau beschrieben denke ich, zumindest bekomm ichs nicht noch genauer hin.

Dankeschön.

Re: "whois" bei allow_url_fopen Off

Verfasst: 06.10.2010 23:11
von modernist
Izanagi71 hat geschrieben:Beim Support, wie gesagt, siehts dann ganz anders aus...
Such dir eine Bezahlsoftware für dein Forum. Da ist dann auch ein Support innert x Stunden dabei. :roll:

Ansonsten glaube ich kaum, daß es hilfreich ist, hier rumzumotzen, wenn du was willst. Es gibt bei phpbb nun einmal kein Anrecht auf Support. Wenn jemand eine Lösung für dein Problem weiß, prima. Wenn nicht, dann ist es halt so.

Re: "whois" bei allow_url_fopen Off

Verfasst: 07.10.2010 01:37
von Mahony
Hallo
1. Frage, was macht das jetzt auf einmal hier?
Da es sich bei deinem Anliegen um eine MOD (Modifikation) des Boards handelt, ist es nur logisch das Thema nach phpBB 3.0: Mod-Bastelstube zu verschieben.
Also alles im grünen Bereich.
Nach dem Motto, Support gibts nur wenn jemand die Antwort weiss - so in der Art: "völlig freiwillig, und wenn Du keine Antwort bekommst sei es gefälligst auch zufrieden"
Hm...logisch - wenn niemand die Antwort auf deine Frage kennt, kann dir auch niemand deine Frage beantworten.
<IRONIE>Falls du aber auch mit sinnlosen Antworten zufrieden bist (um dich besser zu fühlen), dann ließe sich das ja ändern.</IRONIE> :D
Aber schön zu wissen dass hier die 24 Std-Regel eingehalten wird indem da komischerweise sofort jemand zur Stelle ist um zu Sanktionieren.
Hm, die Regeln gelten für alle Benutzer gleichermaßen. Du hast bei deiner Anmeldung hier im Board die Regeln akzeptiert, also halte dich daran und du hast hier keinerlei Probleme.

Zum Thema: Du könntest dir diesen MOD installieren http://www.phpbb.com/community/viewtopi ... ilit=whois
In Verbindung mit diesem Snippet http://www.phpbb.com/community/viewtopi ... #p10545305 kommst du da schon etwas näher an deine Wünsche heran.

Nach dem Einbau des MODs und des Snippets, kannst du als Administrator (oder Moderator) die IP-Adresse eines Benutzers direkt im Beitrag sehen (im Mini-Profil) und wenn du auf die IP-Adresse klickst, bekommst du ein Popup mit den Abfrage-Ergebnissen (inklusive - "A map of your IP address" - also einem google-Map Fensterchen).


Um eine solche Abfrage auch in der viewonline - Ansicht zu haben, gehe folgenderma0en vor:

Suche in der viewonline_body.html

Code: Alles auswählen

<!-- IF user_row.USER_IP --> <span style="margin-left: 30px;">{L_IP}: <a href="{user_row.U_USER_IP}">{user_row.USER_IP}</a> &#187; <a href="{user_row.U_WHOIS}" onclick="popup(this.href, 750, 500); return false;">{L_WHOIS}</a></span><!-- ENDIF -->
Ersetze mit

Code: Alles auswählen

<!-- IF user_row.USER_IP --> <span style="margin-left: 30px;">{L_IP}: <a href="http://private.dnsstuff.com/tools/ipall.ch?domain={user_row.USER_IP}" onclick="popup(this.href, 550, 790);return false;">{user_row.USER_IP}</a><!-- ENDIF -->

Grüße: Mahony

Re: "whois" bei allow_url_fopen Off

Verfasst: 07.10.2010 13:44
von Izanagi71
Dankeschön Mahony.
Ich werde das sogleich ausprobieren.

Hätte ich gewusst dass es mit allow_url_fopen=off dieses Problem ergibt hätte ich den Umzug zum Bezahlhost verschoben und dann somit auch mehr Zeit gehabt auf eine Antwort zu warten.
Aber da bereits alles durchgezogen war drängte nun die Zeit, demzufolge ich auch ziemlich ungeduldig wurde.
Sorry für mein Gepolter. :oops:

Nachtrag:

Funktioniert wunderbar!
Ist sogar noch besser als die ursprüngliche Whois-Funktion.
Dankeschön noch viele Male.

Re: "whois" bei allow_url_fopen Off

Verfasst: 07.10.2010 18:23
von Izanagi71
Ich habs mal in dieser folgenden Art geändert.
Damit die Daten von Betriebssystem, Browser usw. erhalten bleiben und (für mich optisch schöner) alles unter "Benutzer" rechtsbündig angezeigt wird.

Einfach den gesamten "user_row"-Abschnitt in der viewonline_body.html austauschen:

Code: Alles auswählen

<!-- BEGIN user_row -->
    <tr>
        <td class="row1" align="right"> <p class="gen">{user_row.USERNAME_FULL}</p><!-- IF user_row.USER_IP --><p class="gensmall"><a href="{user_row.U_USER_IP}"></a><span style="margin-left: 30px;">{L_IP}: <a href="http://private.dnsstuff.com/tools/ipall.ch?domain={user_row.USER_IP}" onclick="popup(this.href, 750, 500);return false;">{user_row.USER_IP}</a></p><!-- ENDIF -->
            <!-- IF user_row.USER_BROWSER -->{user_row.USER_BROWSER}<!-- ENDIF --></td>
        <td class="row2" align="center" nowrap="nowrap"><p class="genmed">&nbsp;{user_row.LASTUPDATE}</p></td>
        <td class="row1"><p class="genmed"><a href="{user_row.U_FORUM_LOCATION}">{user_row.FORUM_LOCATION}</a></p></td>
    </tr>
<!-- END user_row -->