Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Richtiger Code zur Doku des Googlebot-Besuchs ???

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
inliner
PostRank 1
PostRank 1
Beiträge: 23
Registriert: 10.03.2007, 13:19
Wohnort: Heusenstamm

Beitrag von inliner » 10.03.2007, 15:13

Ich habe auf meiner Index-Seite folgenden Code zur Dokumentations des Googlebot-Besuchs seit 3 Monaten stehen:
<?php
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$domain = explode(".", $host); $domain_array = count($domain)-2;
if ($domain["$domain_array"] == "googlebot"){
$msg = "Googlebot-Besuch: " . date("d.m.Y H:i") . " | ";
$msg .= "IP-Adresse: " . $_SERVER['REMOTE_ADDR'] . " | ";
$msg .= "Hostname: " . gethostbyaddr($_SERVER['REMOTE_ADDR']) . "\n";

$Dateiname = "googlebot.txt";
$Datei = fOpen($Dateiname,"a+");
fPuts($Datei,$msg);
fClose($Datei);
}
?>

Die Datei googlebot.txt habe ich mit chmod auf 666 gesetzt.
Trotzdem erfolgt kein Eintrag in der Datei.

Was ist da falsch?
Die Seite hat übrigens PR 4

Edit:
Den Code habe ich gegoogelt und nicht selbst geschrieben.
Es handelt sich um die Seite: www.podologie-lauer.de
Zuletzt geändert von inliner am 23.03.2007, 02:10, insgesamt 1-mal geändert.
Habt Verständnis für meine "dusseligen" Fragen aber ich bin ein Newbie.
https://www.podologie-lauer.de

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


inliner
PostRank 1
PostRank 1
Beiträge: 23
Registriert: 10.03.2007, 13:19
Wohnort: Heusenstamm

Beitrag von inliner » 23.03.2007, 02:10

Gibt es denn keinen im Forum, der mir eine Antwort geben kann?
Habt Verständnis für meine "dusseligen" Fragen aber ich bin ein Newbie.
https://www.podologie-lauer.de

To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 23.03.2007, 03:13

Hi,

ersetze mal
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);

durch
$host = gethostbyaddr("$_SERVER['REMOTE_ADDR']");

dann sollte es eigentlich gehen. REMOTE_ADDR ist ein String und da muss ein " oder ' drum rum.

Gruß.

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 23.03.2007, 07:47

unsinn!
$_SERVER ist ein array mit dem Feld REMOTE_ADDR!

Versuch mal ein phpinfo(); um herauszufinden, ob diese Info auch wirklich in _SERVER steht. Den Namen des Array kann man nämlich in der PHP-Konfiguration ändern. Ansonsten einfach getenv('HTTP_USER_AGENT') abfragen, ob da (strpos > 0) ein "googlebot" drin vorkommt. Nicht immer lässt sich mit gethostbyaddr ein Wert erfragen, da nicht jede IP revers auflösbar ist, bzw. richtig revers aufgelöst wird.
Also quasi:

Code: Alles auswählen

if &#40;strpos&#40;getenv&#40;"HTTP_USER_AGENT"&#41;,"googlebot"&#41;>0&#41; &#123;
   $msg = "blabla";
   **msg in datei wegschreiben**
&#125;

@MOD: Bitte in Programmierung verschieben.

bangolo
PostRank 6
PostRank 6
Beiträge: 347
Registriert: 23.02.2007, 15:27
Wohnort: Essen

Beitrag von bangolo » 23.03.2007, 08:47

der code funktioniert so einwandfrei, geht allerdings nur wenn der googlebot auch wirklich googlebot heißt und an der angegeben postion steht.

heißt der wirklich so würde der code auch gehen

Code: Alles auswählen

$host = gethostbyaddr&#40;$_SERVER&#91;'REMOTE_ADDR'&#93;&#41;; 
if &#40;strstr&#40;$host, "googlebot"&#41;&#41;&#123; 
$msg = "Googlebot-Besuch&#58; " . date&#40;"d.m.Y H&#58;i"&#41; . " | "; 
$msg .= "IP-Adresse&#58; " . $_SERVER&#91;'REMOTE_ADDR'&#93; . " | "; 
$msg .= "Hostname&#58; " . gethostbyaddr&#40;$_SERVER&#91;'REMOTE_ADDR'&#93;&#41; . "\n"; 
$Dateiname = "googlebot.txt"; 
$Datei = fOpen&#40;$Dateiname,"a+"&#41;; 
fPuts&#40;$Datei,$msg&#41;; 
fClose&#40;$Datei&#41;; 
&#125; 
wie immer führen viel wege nach Rom :wink:

otterstedt
PostRank 5
PostRank 5
Beiträge: 205
Registriert: 14.11.2005, 17:30

Beitrag von otterstedt » 23.03.2007, 09:53

Bist du sicher, dass der Googlebot in der Zeit da war?

chris21
PostRank 9
PostRank 9
Beiträge: 2758
Registriert: 10.04.2005, 18:17

Beitrag von chris21 » 23.03.2007, 18:17

Alternativ könntest Du Dir es auch leichter machen und https://www.crawltrack.fr einsetzen. Einwandfreie sehr brauchbare Statistiken für alle wichtigen Bots. :roll:

Wobei ich nie den eigenen Lerneffekt durch Selbst-Basteln stören will.

inliner
PostRank 1
PostRank 1
Beiträge: 23
Registriert: 10.03.2007, 13:19
Wohnort: Heusenstamm

Beitrag von inliner » 23.03.2007, 19:37

Danke zusammen, ich werde es ausprobieren und berichten.
Habt Verständnis für meine "dusseligen" Fragen aber ich bin ein Newbie.
https://www.podologie-lauer.de

bull
PostRank 9
PostRank 9
Beiträge: 2166
Registriert: 20.09.2003, 20:57
Wohnort: Vèneto

Beitrag von bull » 23.03.2007, 20:16

Code: Alles auswählen

$host = gethostbyaddr&#40;$_SERVER&#91;'REMOTE_ADDR'&#93;&#41;;
if &#40;strstr&#40;$host, "googlebot"&#41;&#41;
&#123; 
Ich verstehe grundsätzlich nicht, aus welchem Grunde man einen Googlezähler in dieser Art und Weise implementiert, verlangsamt es doch i.d.R. den Seitenaufbau spürbar. Wenn man schon Google-Besuche vermittels gethostbyaddr zählen will, scheint ein PHP-Skript, das IP-Adressen aus Apache-Logfiles extrahiert, zählt und am Ende durch gethostbyaddr auflöst, als eine gangbare Alternative.

To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 24.03.2007, 04:30

@auftragslinker
Hälst Du mich eigentlich für bescheuert ???

Klar ist $_SERVER ein Array(), $_SERVER['REMOTE_ADDR'] ist aber ein String. Und das habe ich gesagt, mehr nicht.

Und die besagten "" haben bei mir geholfen dass das benannte Script läuft. Also mußt Du nicht gleich von Unfug reden.

$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
heißt ausgewertet (bei mir) :
gethostbyaddr(111.222.333.444);

Das geht nicht,

sondern nur
gethostbyaddr("111.222.333.444");

da 111.222.333.444 ein String ist und auch so gekennzeichnet werden muß/soll.

Wie gesagt, ist nur meine Testumgebung.

Gruß.

Anonymous

Beitrag von Anonymous » 24.03.2007, 04:44

To-Bi-As hat geschrieben: Klar ist $_SERVER ein Array(), $_SERVER['REMOTE_ADDR'] ist aber ein String. Und das habe ich gesagt, mehr nicht.
Hmm...

schreibst du dann also auch

echo "$text";

?

hmm..

was wäre mit $dingsda, wenn man das per echo ausgeben will... müssen da " drum oder nicht?

:roll:

gut, man könnte jetzt vorher abfragen ob es sich um eine Zahl oder einen String handelt...

:roll:

ja, doch... könnte man wirklich tun.....

:roll:

naja... andererseits könnte man auch einfach kapieren dass eine Variable eine Variable ist und man dann auf die " verzichten kann, egal ob diese variable einen boolean, Integer oder String enthält... macht die ganze Sache ein wenig einfacher... :wink:

achja... solange ihr mit php eure ersten Erfahrungen macht... bitte nur auf webseiten auf denen kaum Traffic kommt oder einen eigenen Server... nur so könnt ihr sicherstellen, dass der Support eures Hosters das script nicht irgendwann einfach löscht.... ist mir schon 2 mal passiert.. also dass ich fremde phpscripte vom Support löschen lassen musste, weil die den gesamten Server in die knie gezwungen haben, und meine webseiten so nicht richtig erreichbar waren.... :evil:

inliner
PostRank 1
PostRank 1
Beiträge: 23
Registriert: 10.03.2007, 13:19
Wohnort: Heusenstamm

Beitrag von inliner » 25.03.2007, 01:24

Halt Mädels,
haut Euch nicht die Köppe ein.

Ich habe jetzt den Tipp von To-Bi-As mal eingebaut und schaue mir das mal ein paar Wochen an.
Habt Verständnis für meine "dusseligen" Fragen aber ich bin ein Newbie.
https://www.podologie-lauer.de

To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 25.03.2007, 04:33

Hmm...

schreibst du dann also auch

echo "$text";

Nein das tue ich nicht, da ich es ja nicht an eine Funktion übergebe.

Aber bei gethostbyaddr() ist es bei mir nunmal so. Kann sein dass es bei anderen anders ist, gut, ok, aber bei mir ist es so wie ich es gesagt habe.

"haut Euch nicht die Köppe ein. "
Nö, warum auch. War nur ein Vorschlag von mir der genau so bei mir funktioniert hat. gethostbyaddr(111.222.333.444); wird bei mir geliefert und das ist falsch. Mag auf nem anderen Server anders sein. Und diese lustigen Posts von "net(t)worker" stecke ich da auch weg, er weiß noch nicht wer ich wirklich bin. Aber irren kann ich mich trotzdem...

Gruß,

Anonymous

Beitrag von Anonymous » 25.03.2007, 12:41

To-Bi-As hat geschrieben:Und diese lustigen Posts von "net(t)worker" stecke ich da auch weg, er weiß noch nicht wer ich wirklich bin. Aber irren kann ich mich trotzdem...
Hmm.... mir ist im grunde auch egal wer du bist... aber von PHP scheinst du nicht viel zu verstehen...

bei

gethostbyaddr("111.222.333.444");

übergibst du einen String, dort müssen natürlich " stehen, aber bei

gethostbyaddr($hostip);

übergibst du eine Variable, und da erkennt PHP selber dass diese einen String enthält...

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 26.03.2007, 10:14

To-Bi-As hat geschrieben: ...er weiß noch nicht wer ich wirklich bin....
bleib mal locker, schon mal was von Netiquette gehört?

ein echo "$test"; is imho das gleiche wie echo $test; da innerhalb der doppelten anführungsstriche variablen geparsed werden! nur ein echo '$test'; würde statt des variableninhaltes ein $test ausgeben.
kommt von der bsh.


ein gethostbyaddr($host) wird als gethostbyaddr("127.0.0.1") geparsed!
dagegen ein gethostbyaddr("$host") funktioniert aber, widerspricht aber allen programmierregeln, die es auf der welt gibt! das würde höchstens (!)
sinn machen, wenn ich ein
gethostbyaddr("192.168.0.$rechnerderangesprochenwird");
bastele.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag