Bing - Sitemap Ping

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Quetschi
    antwortet
    Ja - allerdings muss hier tatsächlich der Response-Content verarbeitet werden. Da das alles aber im Form von Xml daherkommt, ist so etwas relativ leicht mit PHP-Bordmitteln wie z.B. PHP: DOM - Manual zu bewerkstelligen.

    Einen Kommentar schreiben:


  • Proteus1982
    antwortet
    @ Quetschi: Is ja scheisse. Aber mir gehts auch weniger um Bing. Bing hat auch meinen Seiten vllt nen Anteil von 1%. Worauf ich eigentlich hinaus will ist der Google Blog Ping: Google Blog Search Help

    Habe nen Selfmade Blogscript, welches aber z.B. Wordpress völlig unterlegen ist, nur weil das Teil noch nicht Pingen kann. Die Blogger klauen meine Texte und setzen nen ing ab, und zack, bin ich der doofe, weil Google dann den Blog listet, aber nicht mich - Thema Double Content durch externe Seiten.

    Jetzt die Frage: Lässt sich das was google da in dem Dokument schreibt mit diesem Prinzip (fsocket) umsetzt ? Das Thema RPC ... sagt mir kaum was, fsocket hab ich jetzt einiger massen verstanden.

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    Zitat von Proteus1982 Beitrag anzeigen
    Zu dem Doc. von Google: Wundert mich echt ein wenig, dass der Statuscode die erreichbarkeit der Sitemap meint. Dachte erst es sagt, dass der fsocket klar gekommen ist. Aber das macht ja die Abfrage if(!$fp) woar ?
    Die Erreichbarkeit wird nicht überprüft denke ich - es wird lediglich eine syntaktisch korrekte Url akzeptiert - ansonsten spricht wohl nichts dagegen, entsprechende Statuscodes zu senden, wenn der Request nicht wie erwartet aussieht und von daher die einzig vernünftige Implementierung von so einem Service (zumindest mit den anderen beiden verglichen).

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    Ich werd nicht mehr - Google ist von den Dreien die einzige SuMa, die den Ping vernünftig gelöst hat bzw. wenigstens nen 400 sendet, wenn es sich um keine syntaktisch korrekte Url handelt.

    Bei Bing nutzt euer gefrickel aber sowieso nix, weil hier auch die Message im Content immer die gleiche ist.

    Einen Kommentar schreiben:


  • Proteus1982
    antwortet
    Zitat von Quetschi Beitrag anzeigen
    Übertragen wird die Sitemap sowieso nicht - die requestet der Bot dann schon von deiner Seite, wenn er grad Zeit dafür hat. Und die Ping-APIs sind IMHO so eingerichtet, dass ein 200 nur geliefert wird, wenn die Url zur Sitemap einwandfrei übertragen wurde.

    Aktualisieren einer XML-Sitemap - Webmaster/Website-Inhaber-Hilfe

    Wird bei Bing nicht anders sein.
    Ja hab mich falsch ausgedrückt :Man sieht ob der sitemap-ping erfolgreich war

    Zu dem Doc. von Google: Wundert mich echt ein wenig, dass der Statuscode die erreichbarkeit der Sitemap meint. Dachte erst es sagt, dass der fsocket klar gekommen ist. Aber das macht ja die Abfrage if(!$fp) woar ?

    Einen Kommentar schreiben:


  • Gunah
    antwortet
    @ Quetschi Bing sendet immer 200 selbst, wenn man total den Müll reinschreibt...

    genauso wie der Text, der bleibt immer gleich...

    bei ASK ist es genauso, nur wird hier ein Fehlertext zurückgegeben:
    Code:
    http://submissions.ask.com/ping?sitemap=dwada

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    Zitat von Proteus1982 Beitrag anzeigen
    Man kann auch schreiben:
    PHP-Code:
    return($status.$res); 
    , dann kommt auch nur das "Thanks for submitting your sitemap" + das 200 vom Script.
    Hilft aufjedenfall in so fern weiter, dass man bestätigt bekommt, dass die Sitemap eingegangen ist. 200 sagt ja nur aus, dass das Ziel erreichbar ist, aber nicht ob die Sitemap übertragen wurde...
    Übertragen wird die Sitemap sowieso nicht - die requestet der Bot dann schon von deiner Seite, wenn er grad Zeit dafür hat. Und die Ping-APIs sind IMHO so eingerichtet, dass ein 200 nur geliefert wird, wenn die Url zur Sitemap einwandfrei übertragen wurde.

    Aktualisieren einer XML-Sitemap - Webmaster/Website-Inhaber-Hilfe

    Wird bei Bing nicht anders sein.

    Einen Kommentar schreiben:


  • Proteus1982
    antwortet
    Zitat von Gunah Beitrag anzeigen
    PHP-Code:
        function pingBingSitemaps($url_xml)
        {
            
    $status 0;        
            
    $fp = @fsockopen("www.bing.com"80);
            if(!
    $fp)
            { 
                echo 
    "$errstr ($errno)<br />\n";
            }
            else
            {
                
    $req 'GET /webmaster/ping.aspx?siteMap=' .
                      
    urlencode$url_xml ) . " HTTP/1.1\r\n" .
                      
    "Host: www.bing.com\r\n" .
                      
    "User-Agent: Mozilla/5.0 (compatible; " .
                      
    PHP_OS ") PHP/" PHP_VERSION "\r\n" .
                      
    "Connection: Close\r\n\r\n";
                
    fwrite($fp$req);
                while(!
    feof($fp))
                {
                    if(@
    preg_match('~^HTTP/\d\.\d (\d+)~i'fgets($fp128), $m))
                    {
                        
    $status intval($m[1]);
                        break;
                    }
                }
                while (!
    feof($fp))
                {
                    
    $res .= fgets($fp4096);
                }
                
    $res explode("\r\n\r\n",$res,2);
                
    $res end($res);
                echo 
    $res;
                
    fclose($fp);
           }
           return(
    $status);
        } 
    gl
    Habe ich mal ausprobiert, läuft und gibt aus: Thanks for submitting your sitemap

    Dann ist das ganze andere Response-Gedöns weg, keine Ahnung ob man das sonst noch gebrauchen kann.

    Einen Kommentar schreiben:


  • Proteus1982
    antwortet
    Man kann auch schreiben:
    PHP-Code:
    return($status.$res); 
    , dann kommt auch nur das "Thanks for submitting your sitemap" + das 200 vom Script.
    Hilft aufjedenfall in so fern weiter, dass man bestätigt bekommt, dass die Sitemap eingegangen ist. 200 sagt ja nur aus, dass das Ziel erreichbar ist, aber nicht ob die Sitemap übertragen wurde...

    Einen Kommentar schreiben:


  • Gunah
    antwortet
    PHP-Code:
        function pingBingSitemaps($url_xml)
        {
            
    $status 0;        
            
    $fp = @fsockopen("www.bing.com"80);
            if(!
    $fp)
            { 
                echo 
    "$errstr ($errno)<br />\n";
            }
            else
            {
                
    $req 'GET /webmaster/ping.aspx?siteMap=' .
                      
    urlencode$url_xml ) . " HTTP/1.1\r\n" .
                      
    "Host: www.bing.com\r\n" .
                      
    "User-Agent: Mozilla/5.0 (compatible; " .
                      
    PHP_OS ") PHP/" PHP_VERSION "\r\n" .
                      
    "Connection: Close\r\n\r\n";
                
    fwrite($fp$req);
                while(!
    feof($fp))
                {
                    if(@
    preg_match('~^HTTP/\d\.\d (\d+)~i'fgets($fp128), $m))
                    {
                        
    $status intval($m[1]);
                        break;
                    }
                }
                while (!
    feof($fp))
                {
                    
    $res .= fgets($fp4096);
                }
                
    $res explode("\r\n\r\n",$res,2);
                
    $res end($res);
                echo 
    $res;
                
    fclose($fp);
           }
           return(
    $status);
        } 
    gl

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    Das was du wirklich gesucht hast siehst du bei deiner Ausgabe leider immer noch nicht - bzw. doch, den scheinbar wird der in der Funktion returnierte Statuscode noch nach dem Funktionsaufruf ausgegeben. Und das ist nunmal das einzige, was wirklich interessant ist.

    Im Content können sie dir alles mögliche hinschreiben und das kann sich auch ändern, wenns den Machern von Bing grad so passt, was zur Folge haben kann, dass dein Script dir sagt, dass der Ping nicht geklappt hat, obwohl es in Wahrheit funktioniert hat.

    Einen Kommentar schreiben:


  • Proteus1982
    antwortet
    Ah jetz ja...

    Problem gelöst:

    PHP-Code:
        function pingBingSitemaps($url_xml)
        {
            
    $status 0;        
            
    $fp = @fsockopen("www.bing.com"80);
            if(!
    $fp)
            { 
                echo 
    "$errstr ($errno)<br />\n";
            }
            else
            {
                
    $req 'GET /webmaster/ping.aspx?siteMap=' .
                      
    urlencode$url_xml ) . " HTTP/1.1\r\n" .
                      
    "Host: www.bing.com\r\n" .
                      
    "User-Agent: Mozilla/5.0 (compatible; " .
                      
    PHP_OS ") PHP/" PHP_VERSION "\r\n" .
                      
    "Connection: Close\r\n\r\n";
                
    fwrite($fp$req);
                while(!
    feof($fp))
                {
                    if(@
    preg_match('~^HTTP/\d\.\d (\d+)~i'fgets($fp128), $m))
                    {
                        
    $status intval($m[1]);
                        break;
                    }
                }
                while (!
    feof($fp))
                {
                    
    $res fgets($fp4096);
                    echo 
    $res;
                }
                
    fclose($fp);
           }
           return(
    $status);
        } 
    Danke für die Tipps. Hatte mir das feof nicht angeschaut, was ja mit der Schleife unabdingbar ist. Das o.g. Script wurde vor dem fclose nun so erweitert, dass folgende Response kam:

    Code:
    Cache-Control: private Content-Length: 163 Content-Type: text/html P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND", policyref="http://privacy.msn.com/w3c/p3p.xml" Date: Tue, 03 Nov 2009 11:50:08 GMT Connection: close Set-Cookie: _FS=mkt=-DE&ui=de-DE; domain=.bing.com; path=/ Set-Cookie: MUID=F7C26083DB3B4C208FFA1B629329E956; expires=Thu, 03-Nov-2011 11:50:08 GMT; domain=.bing.com; path=/ Set-Cookie: OrigMUID=F7C26083DB3B4C208FFA1B629329E956%2c1307f89b261f4fd9aa1953178e44f7f3; expires=Thu, 03-Nov-2011 11:50:08 GMT; domain=.bing.com; path=/ Set-Cookie: OVR=flt=0&DomainVertical=0&Cashback=cbtest4&MSCorp=kievfinal&GeoPerf=0; domain=.bing.com; path=/ Set-Cookie: SRCHD=D=968390&MS=968390&AF=NOFORM; expires=Thu, 03-Nov-2011 11:50:08 GMT; domain=.bing.com; path=/ Set-Cookie: SRCHUID=V=2&GUID=48A93ECC44EC42BE98AB6ACFBCA3B3DB; expires=Thu, 03-Nov-2011 11:50:08 GMT; path=/ Set-Cookie: SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=20091103; expires=Thu, 03-Nov-2011 11:50:08 GMT; domain=.bing.com; path=/ Thanks for submitting your sitemap.200
    In der Browser-Quelltextanzeige sieht das dann so aus:
    Code:
    Cache-Control: private
    Content-Length: 163
    Content-Type: text/html
    P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND", policyref="http://privacy.msn.com/w3c/p3p.xml"
    Date: Tue, 03 Nov 2009 11:50:08 GMT
    Connection: close
    Set-Cookie: _FS=mkt=-DE&ui=de-DE; domain=.bing.com; path=/
    Set-Cookie: MUID=F7C26083DB3B4C208FFA1B629329E956; expires=Thu, 03-Nov-2011 11:50:08 GMT; domain=.bing.com; path=/
    Set-Cookie: OrigMUID=F7C26083DB3B4C208FFA1B629329E956%2c1307f89b261f4fd9aa1953178e44f7f3; expires=Thu, 03-Nov-2011 11:50:08 GMT; domain=.bing.com; path=/
    Set-Cookie: OVR=flt=0&DomainVertical=0&Cashback=cbtest4&MSCorp=kievfinal&GeoPerf=0; domain=.bing.com; path=/
    Set-Cookie: SRCHD=D=968390&MS=968390&AF=NOFORM; expires=Thu, 03-Nov-2011 11:50:08 GMT; domain=.bing.com; path=/
    Set-Cookie: SRCHUID=V=2&GUID=48A93ECC44EC42BE98AB6ACFBCA3B3DB; expires=Thu, 03-Nov-2011 11:50:08 GMT; path=/
    Set-Cookie: SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=20091103; expires=Thu, 03-Nov-2011 11:50:08 GMT; domain=.bing.com; path=/
    
    <html xmlns="http://www.w3.org/1999/xhtml" ><head><title>Submit Sitemap - Webmaster ToolsBing</title></head><body>Thanks for submitting your sitemap.</body></html>200
    Muss noch umformatiert werden... da bin ich auch nicht so der Spezi drin. Am Ende steht jedenfalls "Thanks for submitting your sitemap" - GREAT - das hab ich gesucht, auch wenns noch nicht schön aussieht

    PS: Hab den Code mit Tabs umformatiert, wenns recht ist...

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    Zitat von Gunah Beitrag anzeigen
    naja ohne explode oder ähnliches wirst du das meines wissen nach bei fsocketopen nicht hinbekommen...
    Das was hier gefordert ist? Wieso nicht?

    Einen Kommentar schreiben:


  • Gunah
    antwortet
    naja ohne explode oder ähnliches wirst du das meines wissen nach bei fsocketopen nicht hinbekommen, entweder man nimmt dann fopen, oder curl

    Einen Kommentar schreiben:


  • Quetschi
    antwortet
    Zitat von Gunah Beitrag anzeigen
    der Header wird aber per "\r\n\r\n" getrennt meine ich irgendwie war das so... bin mir gerade nicht sicher
    Der Header wird dadurch vom Content getrennt - jedoch hier uninteressant, da der Header vor dem Content ausgeliefert wird und der Content muss für diese Zwecke hier nicht ausgelesen werden.

    Einen Kommentar schreiben:

Lädt...
X