当前位置 博文首页 > 用asp与php实现百度ping服务的代码

    用asp与php实现百度ping服务的代码

    作者:admin 时间:2021-09-05 19:04

    ASP:
    复制代码 代码如下:

    <%
    Option Explicit
    Response.Buffer = true
    Response.ContentType = "text/html"
    Response.Charset = "gb2312″
    Dim Url, Result
    Url = "http://ping.baidu.com/ping/RPC2"
    Result = BytesToBstr(SendPing(Url), "gb2312″)
    IF Instr(Result, "<int>0</int>") > 0 Then
    Response.Write("success")
    Else
    Response.Write("failure")
    End IF
    Function SendPing(Url)
    Dim s : s = ""
    Randomize()
    Dim r : r = Int(Rnd() * 9999) + 1000
    s = s & "<?xml version=""1.0″" encoding=""gb2312″"?>"
    s = s & "<methodCall>"
    s = s & "<methodName>weblogUpdates.ping</methodName>"
    s = s & "<params>"
    s = s & "<param><value><string>开发网站的一些小技巧</string></value></param>"
    s = s & "<param><value><string>http://hi.baidu.com/subendong/blog</string></value></param>"
    s = s & "<param><value><string>http://hi.baidu.com/subendong/blog/item/6cd9468d243e8c07b21bba5e.html</string></value></param>"
    s = s & "<param><value><string></string></value></param>"
    s = s & "</params>"
    s = s & "</methodCall>"
    Response.Write "<p>发送Ping到:" & Url & "</p>"
    Response.Flush
    Dim objPing
    Set objPing = Server.CreateObject("MSXML2.ServerXMLHTTP")
    objPing.SetTimeOuts 10000, 10000, 10000, 10000
    ‘第一个数值:解析DNS名字的超时时间10秒
    ‘第二个数值:建立Winsock连接的超时时间10秒
    ‘第三个数值:发送数据的超时时间10秒
    ‘第四个数值:接收response的超时时间10秒
    objPing.open "POST", Url & "?r=" & r, False
    objPing.setRequestHeader "Content-Type", "text/xml; charset=gb2312″
    objPing.send(s)
    SendPing = objPing.ResponseBody
    Set objPing = Nothing
    End Function
    ‘===============================================
    ‘函数名:BytesToBstr
    ‘作用:字符集转换
    ‘参数:body–内容;Cset–指定的字符集
    ‘===============================================
    Function BytesToBstr(body, Cset)
    dim objstream
    set objstream = Server.CreateObject("adodb.stream")
    objstream.Type = 1
    objstream.Mode =3
    objstream.Open
    objstream.Write body
    objstream.Position = 0
    objstream.Type = 2
    objstream.Charset = Cset
    BytesToBstr = objstream.ReadText
    objstream.Close
    set objstream = nothing
    End Function
    %>

    PHP:
    复制代码 代码如下:

    <?php
    function postUrl($url, $postvar)
    {
    $ch = curl_init();
    $headers = array(
    "POST ".$url." HTTP/1.0″,
    "Content-type: text/xml; charset=\"gb2312\"",
    "Accept: text/xml",
    "Content-length: ".strlen($postvar)
    );
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postvar);
    $res = curl_exec ($ch);
    curl_close ($ch);
    return $res;
    }
    $baiduXML = "<?xml version=\"1.0\" encoding=\"gb2312\"?>
    <methodCall>
    <methodName>weblogUpdates.extendedPing</methodName>
    <params>
    <param><value><string>站长博客</string></value></param>
    <param><value><string>http://blog.iis7.com</string></value></param>
    <param><value><string>http://blog.iis7.com/a/15222.html</string></value></param>
    <param><value><string>http://blog.iis7.com</string></value></param>
    </params>
    </methodCall>";
    $res = postUrl(‘http://ping.baidu.com/ping/RPC2′, $baiduXML);
    if ( strpos($res, "<int>0</int>") )
    {
    echo "PING成功";
    }
    else
    {
    echo "PING失败";
    }
    ?>
    jsjbwy
    下一篇:没有了