PHP服务器状态监控实现程序

 更新时间:2016年11月25日 15:38  点击:2006
PHP服务器状态监控对于很多朋友来讲都没做,只有看到网站挂了才知道,这种半夜网站关了是不知道情况了,对于网站也非常不好,下面我们来看看小编整理的一段服务器状态监控程序。

这两天抽空写了个网页服务器状态监控,看到有朋友说需要,那我就放出来吧。很简单的东西。

使用方法

打开压缩包里面的status.php文件。编辑这里的内容为你自己的邮箱信息。

 代码如下 复制代码

$mail->Host       = 'smtp.exmail.qq.com';      // SMTP 服务器
$mail->Port       = 25;   // SMTP服务器的端口号
$mail->Username   = 'admin@xxx.com';  // SMTP服务器用户名
$mail->Password   = 'password';            // SMTP服务器密码
$mail->SetFrom('admin@xxx.com','Status');
$mail->AddReplyTo('admin@xxx.com','Status');
$mail->Subject    = $subject;
$mail->AltBody    = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test
$mail->MsgHTML($body);
$address = 'admin@admin.com';   //接收邮箱

更改这里的内容为你要监控的IP

 代码如下 复制代码

$server_ip_list = array(
'61.135.169.121',
'221.204.173.200',
'173.194.127.83'
);

然后访问你http://yourdomain.com/status.php文件,即可看到当前服务器状态并且自动发送邮件到你设置的邮箱。如果需要自动监控,请添加Cron任务或者使用什么监控宝之类的!

完整代码

 代码如下 复制代码

<?php
/*
 * 服务器状态监控

 */
header('Content-type:text/html;charset=utf-8');
include './smtp/class.smtp.php';
include './smtp/class.phpmailer.php';
function sendmail($subject = '',$body = '') {
    date_default_timezone_set('Asia/Shanghai');//设定时区东八区
    $mail             = new PHPMailer(); //new一个PHPMailer对象出来
    // $body            = eregi_replace("[]",'',$body); //对邮件内容进行必要的过滤
    $mail->CharSet ="UTF-8";//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
    $mail->IsSMTP(); // 设定使用SMTP服务
    $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能
    $mail->Host       = 'smtp.exmail.qq.com';      // SMTP 服务器
    $mail->Port       = 25;   // SMTP服务器的端口号
    $mail->Username   = 'admin@xxx.com';  // SMTP服务器用户名
    $mail->Password   = 'password';            // SMTP服务器密码
    $mail->SetFrom('admin@xxx.com','Status');
    $mail->AddReplyTo('admin@xxx.com','Status');
    $mail->Subject    = $subject;
    $mail->AltBody    = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test
    $mail->MsgHTML($body);
    $address = 'admin@admin.com'; //接收邮箱
    $mail->AddAddress($address, '');
    //$mail->AddAttachment("images/phpmailer.gif");      // attachment  附件
    //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
    if(!$mail->Send()) {
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
         // echo "Message sent!恭喜,邮件发送成功!";
    }
}
//check server status
function checkServerSatatus($ip) {
 $str = null;
 $fp = @fsockopen($ip,80,$errno,$errstr,10);

 if (!$fp) {
  return false;
 } else {
  fclose($fp);
  return true;
 }
}
$server_ip_list = array(
       '61.135.169.121',
       '221.204.173.200',
       '173.194.127.83'
      );
?>
<!doctype html>
<html lang="zh_CN">
<head>
 <meta charset="UTF-8">
 <title>服务器状态监控</title>
 <style>
 * {
  margin: 0px;
  padding: 0px;
 }
 body {
  font-family: "Microsoft yahei",Arial;
  font-size:14px;
 }
 header {
  height: 40px;
  background-color: #2e2e2e;
  width: 100%;
  line-height: 35px;
 }
 header > h3 {
  color: #fff;
  margin-left: 20px;
 }
 footer {
  text-align: center;
 }
 a {
  color: #424242;
  text-decoration: none;
 }
 .wrap {
  height: auto;
  zoom:1;
  overflow: auto;
  max-width: 500px;
  width: 100%;
  margin: 50px auto;
 }
 .table {
  border-collapse: collapse;
  border: 1px solid #eee;
  width: 100%;
 }
 tr,td{
  color: #424242;
  border-collapse: collapse;
  border: 1px solid #F0F0F0;
  height: 30px;
  text-align: center;
 }
 tr:nth-child(2n+1) {
  background-color: #F7F8FC;
 }
 tr:hover {
  background-color: #F7F8FC;
 }
 .online,.offline {
  height: 20px;
  background-color: #2ECC71;
  width: 40px;
  margin: 0px auto;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  color: #fff;
 }
 .offline {
  width: 50px;
  background-color: #E74C3C;
 }
 </style>
</head>
<body>
 <header>
  <h3>服务器在线状态监控</h3>
 </header>
 <div class="wrap">
  <table class="table">
   <tbody>
    <tr><td>ID</td><td>Location</td><td>Address</td><td>Status</td></tr>
    <?php
     $i = 0;
     foreach ($server_ip_list as $key => $val) {
      $api = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$server_ip_list[$key].'');
      $json = json_decode($api);
      $result = $json->data;

      $i++;
      if (checkServerSatatus($server_ip_list[$key])) {
       echo "<tr><td>{$i}</td><td>{$result->country}{$result->region}{$result->city}</td><td>{$server_ip_list[$key]}</td><td><div class="online">在线</div></td></tr>";
      } else {
       echo "<tr><td>{$i}</td><td>{$result->country}{$result->region}{$result->city}</td><td>{$server_ip_list[$key]}</td><td><div class="offline">不在线</div></td></tr>";
       $subject = "您的服务器 {$server_ip_list[$key]} 无法访问!";
       $body = "您的服务器{$server_ip_list[$key]} 无法访问,此邮件根据你设置的监控频率发送,当服务器恢复正常邮件自动停止发送!";
       sendmail($subject,$body);
      }
     }

     ?>
   </tbody>
  </table>
 </div>
 
</body>
</html>

注意:

include './smtp/class.smtp.php';
include './smtp/class.phpmailer.php';
文件可以下载phpmailer包然后我们在包里面这两个文件复制出来然后即可使用了。

ps:这个只是一个非常的简单的不能很好的监控到服务器了,现在有很多成熟的免费产品都可以更好的达到我们要求,如dnspod里面有一个D监控了,然后我们就可以操作。

php中有很多种远程请求的方法,本教程中我们主要讲6种最常用的GET和POST请求发送方法,更多的php远程请求大家可以到网站多找找,也可以查php手册。

1、用file_get_contents 以get方式获取内容:

 代码如下 复制代码

<?php
$url='http://www.ido321.com/';
$html = file_get_contents($url);
echo $html;
?>


2、用fopen打开url,用get方式获取

 代码如下 复制代码

$fp = fopen($url, 'r');
stream_get_meta_data($fp);
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);



3、用file_get_contents 以post方式获取内容:

 代码如下 复制代码

$data = array ('foo' => 'bar');
$data = http_build_query($data);
 
$opts = array (
'http' => array (
'method' => 'POST',
'header'=> "Content-type: application/x-www-form-urlencodedrn" .
'Content-Length: ' . strlen($data) . 'rn',
'content' => $data
)
);
 
$context = stream_context_create($opts);
$html = file_get_contents('http://localhost/e/admin/test.html', false, $context);
 
echo $html;



4、用fsockopen函数打开url,以get方式获取完整的数据,包括header和body,fsockopen需要 PHP.ini 中 allow_url_fopen 选项开启

 代码如下 复制代码

function get_url ($url,$cookie=false)
{
$url = parse_url($url);
$query = $url[path].'?'.$url[query];
echo 'Query:'.$query;
$fp = fsockopen( $url[host], $url[port]?$url[port]:80 , $errno, $errstr, 30);
if (!$fp) {
return false;
} else {
$request = 'GET $query HTTP/1.1rn';
$request .= 'Host: $url[host]rn';
$request .= 'Connection: Closern';
if($cookie) $request.='Cookie:  $cookien';
$request.='rn';
fwrite($fp,$request);
while(!@feof($fp)) {
$result .= @fgets($fp, 1024);
}
fclose($fp);
return $result;
}
}
//获取url的html部分,去掉header
function GetUrlHTML($url,$cookie=false)
{
$rowdata = get_url($url,$cookie);
if($rowdata)
{
$body= stristr($rowdata,'rnrn');
$body=substr($body,4,strlen($body));
return $body;
}
 
return false;
}


5、用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body

 代码如下 复制代码

function HTTP_Post($URL,$data,$cookie, $referrer='')
{
 
// parsing the given URL
$URL_Info=parse_url($URL);
 
// Building referrer
if($referrer=='') // if not given use this script as referrer
$referrer='111';
 
// making string from $data
foreach($data as $key=>$value)
$values[]='$key='.urlencode($value);
$data_string=implode('&',$values);
 
// Find out which port is needed – if not given use standard (=80)
if(!isset($URL_Info['port']))
$URL_Info['port']=80;
 
// building POST-request:
$request.="POST ".$URL_Info['path']." HTTP/1.1n";
$request.="Host: ".$URL_Info['host']."n";
$request.="Referer: $referern";
$request.="Content-type: application/x-www-form-urlencodedn";
$request.='Content-length: '.strlen($data_string)."n";
$request.='Connection: closen';
 
$request.='Cookie:  $cookien';
 
$request.='n';
$request.=$data_string.'n';
 
$fp = fsockopen($URL_Info['host'],$URL_Info['port']);
fputs($fp, $request);
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
fclose($fp);
 
return $result;
}



6、使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展

 代码如下 复制代码

$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, ‘http://www.ido321.com/');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
 
echo $file_contents;
本文章为各位介绍php按文件生成时间排序列出目录下的所有文件的例子,有兴趣的朋友不防进入参考。

先看文件列表:

php按文件生成时间排序列出目录下的所有文件

再看代码:
 代码如下 复制代码
$dir=’ass’;
$dp = dir($dir);
while ($file = $dp ->read()){
$filename=$dir.’/’.$file;
if($file!=’.'&&$file!=’..’){
$key=filectime($filename)*1000+rand(100,999);
$files[strval($key)]=$filename;
}
}
echo ‘<pre>’;
print_r($files);
ksort($files);
print_r($files);
$keys = range(1,count($files));
$arr=array_combine($keys,$files);
print_r($arr);
echo ‘</pre>’;

打印结果:

php按文件生成时间排序列出目录下的所有文件

 代码如下 复制代码
Array
(
    [1] => 第十五课.ass
    [2] => 第二十一课.ass
    [3] => 第二十课.ass
    [4] => 第九课.ass
    [5] => 第二十六课.ass
    [6] => 第四课.ass
    [7] => 第十七课.ass
    [8] => 第二十二课.ass
    [9] => 第七课.ass
    [10] => 第三课.ass
    [11] => 第十八课.ass
)
提取内容是一个比较有意思的项目了,今天要做一个这样的小搜索引擎了,下面小编就给各位介绍一个php提取网页正文内容的例子,希望能给各位带来帮助。

Html2Article-php实现的提取网页正文部分,最近研究百度结果页的资讯采集,其中关键环节就是从采集回的页面中提取出文章。

因为难点在于如何去识别并保留网页中的文章部分,而且删除其它无用的信息,并且要做到通用化,不能像火车头那样根据目标站来制定采集规则,因为搜索引擎结果中有各种的网页。

抓回一个页面的数据,如何匹配出正文部分,郑晓在下班路上想了个思路是:

1. 提取出body标签部分–>剔除所有链接–>剔除所有script、注释–>剔除所有空白标签(包括标签内不含中文的)–>获取结果。
2. 直接匹配出非链接的、 符合在div、p、h标签中的中文部分???
还是会有不少其它多余信息啊,比如底部信息等。。 如何搞?不知道大家有木有什么思路或建议?

这个类是从网上找到的一个php实现的提取网页正文部分的算法,郑晓在本地也测试了下,准确率非常高。

 代码如下 复制代码

<?php

class Readability {
    // 保存判定结果的标记位名称
    const ATTR_CONTENT_SCORE = "contentScore";

    // DOM 解析类目前只支持 UTF-8 编码
    const DOM_DEFAULT_CHARSET = "utf-8";

    // 当判定失败时显示的内容
    const MESSAGE_CAN_NOT_GET = "Readability was unable to parse this page for content.";

    // DOM 解析类(PHP5 已内置)
    protected $DOM = null;

    // 需要解析的源代码
    protected $source = "";

    // 章节的父元素列表
    private $parentNodes = array();

    // 需要删除的标签
    // Note: added extra tags from http://www.111cn.net

    private $junkTags = Array("style", "form", "iframe", "script", "button", "input", "textarea",
                                "noscript", "select", "option", "object", "applet", "basefont",
                                "bgsound", "blink", "canvas", "command", "menu", "nav", "datalist",
                                "embed", "frame", "frameset", "keygen", "label", "marquee", "link");

    // 需要删除的属性
    private $junkAttrs = Array("style", "class", "onclick", "onmouseover", "align", "border", "margin");


    /**
     * 构造函数
     *      @param $input_char 字符串的编码。默认 utf-8,可以省略
     */
    function __construct($source, $input_char = "utf-8") {
        $this->source = $source;

        // DOM 解析类只能处理 UTF-8 格式的字符
        $source = mb_convert_encoding($source, 'HTML-ENTITIES', $input_char);

        // 预处理 HTML 标签,剔除冗余的标签等
        $source = $this->preparSource($source);

        // 生成 DOM 解析类
        $this->DOM = new DOMDocument('1.0', $input_char);
        try {
            //libxml_use_internal_errors(true);
            // 会有些错误信息,不过不要紧 :^)
            if (!@$this->DOM->loadHTML('<?xml encoding="'.Readability::DOM_DEFAULT_CHARSET.'">'.$source)) {
                throw new Exception("Parse HTML Error!");
            }

            foreach ($this->DOM->childNodes as $item) {
                if ($item->nodeType == XML_PI_NODE) {
                    $this->DOM->removeChild($item); // remove hack
                }
            }

            // insert proper
            $this->DOM->encoding = Readability::DOM_DEFAULT_CHARSET;
        } catch (Exception $e) {
            // ...
        }
    }


    /**
     * 预处理 HTML 标签,使其能够准确被 DOM 解析类处理
     *
     * @return String
     */
    private function preparSource($string) {
        // 剔除多余的 HTML 编码标记,避免解析出错
        preg_match("/charset=([\w|\-]+);?/", $string, $match);
        if (isset($match[1])) {
            $string = preg_replace("/charset=([\w|\-]+);?/", "", $string, 1);
        }

        // Replace all doubled-up <BR> tags with <P> tags, and remove fonts.
        $string = preg_replace("/<br\/?>[ \r\n\s]*<br\/?>/i", "</p><p>", $string);
        $string = preg_replace("/<\/?font[^>]*>/i", "", $string);

        // @see https://github.com/feelinglucky/php-readability/issues/7
        //   - from http://stackoverflow.com/questions/7130867/remove-script-tag-from-html-content
        $string = preg_replace("#<script(.*?)>(.*?)</script>#is", "", $string);

        return trim($string);
    }


    /**
     * 删除 DOM 元素中所有的 $TagName 标签
     *
     * @return DOMDocument
     */
    private function removeJunkTag($RootNode, $TagName) {
       
        $Tags = $RootNode->getElementsByTagName($TagName);
       
        //Note: always index 0, because removing a tag removes it from the results as well.
        while($Tag = $Tags->item(0)){
            $parentNode = $Tag->parentNode;
            $parentNode->removeChild($Tag);
        }
       
        return $RootNode;
       
    }

    /**
     * 删除元素中所有不需要的属性
     */
    private function removeJunkAttr($RootNode, $Attr) {
        $Tags = $RootNode->getElementsByTagName("*");

        $i = 0;
        while($Tag = $Tags->item($i++)) {
            $Tag->removeAttribute($Attr);
        }

        return $RootNode;
    }

    /**
     * 根据评分获取页面主要内容的盒模型
     *      判定算法来自:http://code.google.com/p/arc90labs-readability/  
     *      这里由郑晓博客转发
     * @return DOMNode
     */
    private function getTopBox() {
        // 获得页面所有的章节
        $allParagraphs = $this->DOM->getElementsByTagName("p");

        // Study all the paragraphs and find the chunk that has the best score.
        // A score is determined by things like: Number of <p>'s, commas, special classes, etc.
        $i = 0;
        while($paragraph = $allParagraphs->item($i++)) {
            $parentNode   = $paragraph->parentNode;
            $contentScore = intval($parentNode->getAttribute(Readability::ATTR_CONTENT_SCORE));
            $className    = $parentNode->getAttribute("class");
            $id           = $parentNode->getAttribute("id");

            // Look for a special classname
            if (preg_match("/(comment|meta|footer|footnote)/i", $className)) {
                $contentScore -= 50;
            } else if(preg_match(
                "/((^|\\s)(post|hentry|entry[-]?(content|text|body)?|article[-]?(content|text|body)?)(\\s|$))/i",
                $className)) {
                $contentScore += 25;
            }

            // Look for a special ID
            if (preg_match("/(comment|meta|footer|footnote)/i", $id)) {
                $contentScore -= 50;
            } else if (preg_match(
                "/^(post|hentry|entry[-]?(content|text|body)?|article[-]?(content|text|body)?)$/i",
                $id)) {
                $contentScore += 25;
            }

            // Add a point for the paragraph found
            // Add points for any commas within this paragraph
            if (strlen($paragraph->nodeValue) > 10) {
                $contentScore += strlen($paragraph->nodeValue);
            }

            // 保存父元素的判定得分
            $parentNode->setAttribute(Readability::ATTR_CONTENT_SCORE, $contentScore);

            // 保存章节的父元素,以便下次快速获取
            array_push($this->parentNodes, $parentNode);
        }

        $topBox = null;
       
        // Assignment from index for performance.
        //     See http://www.peachpit.com/articles/article.aspx?p=31567&seqNum=5
        for ($i = 0, $len = sizeof($this->parentNodes); $i < $len; $i++) {
            $parentNode      = $this->parentNodes[$i];
            $contentScore    = intval($parentNode->getAttribute(Readability::ATTR_CONTENT_SCORE));
            $orgContentScore = intval($topBox ? $topBox->getAttribute(Readability::ATTR_CONTENT_SCORE) : 0);

            if ($contentScore && $contentScore > $orgContentScore) {
                $topBox = $parentNode;
            }
        }
       
        // 此时,$topBox 应为已经判定后的页面内容主元素
        return $topBox;
    }


    /**
     * 获取 HTML 页面标题
     *
     * @return String
     */
    public function getTitle() {
        $split_point = ' - ';
        $titleNodes = $this->DOM->getElementsByTagName("title");

        if ($titleNodes->length
            && $titleNode = $titleNodes->item(0)) {
            // @see http://stackoverflow.com/questions/717328/how-to-explode-string-right-to-left
            $title  = trim($titleNode->nodeValue);
            $result = array_map('strrev', explode($split_point, strrev($title)));
            return sizeof($result) > 1 ? array_pop($result) : $title;
        }

        return null;
    }


    /**
     * Get Leading Image Url
     *
     * @return String
     */
    public function getLeadImageUrl($node) {
        $images = $node->getElementsByTagName("img");

        if ($images->length && $leadImage = $images->item(0)) {
            return $leadImage->getAttribute("src");
        }

        return null;
    }


    /**
     * 获取页面的主要内容(Readability 以后的内容)
     *
     * @return Array
     */
    public function getContent() {
        if (!$this->DOM) return false;

        // 获取页面标题
        $ContentTitle = $this->getTitle();

        // 获取页面主内容
        $ContentBox = $this->getTopBox();
       
        //Check if we found a suitable top-box.
        if($ContentBox === null)
            throw new RuntimeException(Readability::MESSAGE_CAN_NOT_GET);
       
        // 复制内容到新的 DOMDocument
        $Target = new DOMDocument;
        $Target->appendChild($Target->importNode($ContentBox, true));

        // 删除不需要的标签
        foreach ($this->junkTags as $tag) {
            $Target = $this->removeJunkTag($Target, $tag);
        }

        // 删除不需要的属性
        foreach ($this->junkAttrs as $attr) {
            $Target = $this->removeJunkAttr($Target, $attr);
        }

        $content = mb_convert_encoding($Target->saveHTML(), Readability::DOM_DEFAULT_CHARSET, "HTML-ENTITIES");

        // 多个数据,以数组的形式返回
        return Array(
            'lead_image_url' => $this->getLeadImageUrl($Target),
            'word_count' => mb_strlen(strip_tags($content), Readability::DOM_DEFAULT_CHARSET),
            'title' => $ContentTitle ? $ContentTitle : null,
            'content' => $content
        );
    }

    function __destruct() { }
}


使用起来也非常简单,实例化时传入网页的html源码和相应的编码,然后直接调用其getContent方法即可返回提取到的正文部分,提取出的文章中可能还会含有少部分链接,可以自己后期再修改

排列组合公式/排列组合计算公式公式P是指排列,从N个元素取R个进行排列。 公式C是指组合,从N个元素取R个,不进行排列了,但在php中我们可以用N种方法写出来了,但每一种写法的性能会不同,下面我们就来看看吧。

需求是这样的:

找到数组中所有可能的指定长度的组合,要求没有重复。

方法一:

 代码如下 复制代码

function getCombinationToString($arr,$m){
    $result = array();
    if ($m ==1){
       return $arr;
    }
   
    if ($m == count($arr)){
        $result[] = implode(',' , $arr);
        return $result;
    }
       
    $temp_firstelement = $arr[0];
    unset($arr[0]);
    $arr = array_values($arr);
    $temp_list1 = getCombinationToString($arr, ($m-1));
   
    foreach ($temp_list1 as $s){
        $s = $temp_firstelement.','.$s;
        $result[] = $s;
    }
    unset($temp_list1);

    $temp_list2 = getCombinationToString($arr, $m);
    foreach ($temp_list2 as $s){
        $result[] = $s;
    }   
    unset($temp_list2);
   
    return $result;
}
$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18);
$t = getCombinationToString($arr, 6);

var_dump($t);

执行时间:238ms。

方法二:

 代码如下 复制代码

function getCombinAryByNum( $arr, $num,$t=array()) {
  if ($num == 0) {
    return array($t);
  }
  $r = array();
  for ($i=0,$l=count($arr); $i <= $l-$num; $i++) {
    $tmp = getCombinAryByNum( array_slice($arr, $i+1, $l, false), $num-1,array_merge($t, array($arr[$i])));
    $r = array_merge($r, $tmp);
  }
  return $r;
}

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18);
$numum = 6;
$ss = getCombinAryByNum($arr,$numum);

var_dump($ss);

执行时间:710ms。

[!--infotagslink--]

相关文章

  • 分享一段php获取linux服务器状态的代码

    简单的php获取linux服务器状态的代码,不多说-直接上函数:复制代码 代码如下:function get_used_status(){ $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况 $rs =...2014-05-31
  • Springboot+TCP监听服务器搭建过程图解

    这篇文章主要介绍了Springboot+TCP监听服务器搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-28
  • 服务器 UDP端口占用几千个的解决办法

    前一段时间使用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,当时事情比较多,没有管它,今天终于有点时间,仔细检查了一下,排除了这个问题. ...2016-01-27
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • 解决HttpPost+json请求---服务器中文乱码及其他问题

    这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22
  • Hyper-V尝试连接到服务器出错无效类的解决方法

    这篇文章主要介绍了Hyper-V尝试连接到服务器出错无效类的解决方法,需要的朋友可以参考下...2016-09-28
  • mac使用Shell(终端)SSH连接远程服务器的方法

    这篇文章主要介绍了mac使用Shell(终端)SSH连接远程服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11
  • js实现上传图片到服务器

    这篇文章主要为大家详细介绍了js实现上传图片到服务器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-11
  • c# HttpWebRequest通过代理服务器抓取网页内容应用介绍

    在C#项目开发过程中可能会有些特殊的需求比如:用HttpWebRequest通过代理服务器验证后抓取网页内容,要想实现此方法并不容易,本文整理了一下,有需求的朋友可以参考下...2020-06-25
  • uploader秒传图片到服务器完整代码

    这篇文章主要为大家详细介绍了uploader秒传图片到服务器的完整代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-04-27
  • Linux环境下nginx搭建简易图片服务器

    这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下...2016-01-27
  • Windows 2016 服务器安全设置

    最近公司的网站升级Windows 2016服务器,选择安装了最新版的Windows 2016,以前使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅...2020-10-05
  • 使用node-media-server搭建一个简易的流媒体服务器

    这篇文章主要介绍了使用node-media-server搭建一个简易的流媒体服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
  • 阿里云免费套餐再次升级: 含云服务器、云数据库等35+产品

    阿里云免费套餐再次升级,提供更多产品,更久时长的使用,本次活动针对个人用户和企业用户,不过仅限新用户申请,想要了解更多,下面就来简单地了解一下活动规则 阿里云免费...2017-07-06
  • ECMall支持SSL连接邮件服务器的配置方法详解

    首先,主要是ecmall使用的phpmailer版本太低,不支持加密连接。然后,得对相应代码做一定调整。1. 覆盖phpmailer请从附件进行下载: 复制代码 代码如下:http://cywl.jb51.net:81/201405/yuanma/ecmall_phpmailer_lib(jb51.n...2014-05-31
  • golang DNS服务器的简单实现操作

    这篇文章主要介绍了golang DNS服务器的简单实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-01
  • 图文详解本地Windows 7/8上IIS服务器搭建教程

    这篇文章主要以图文结合的方式详细介绍了本地Windows 78上IIS服务器搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...2017-07-06
  • C#如何连接服务器共享文件夹

    这篇文章主要为大家详细介绍了C#如何连接服务器共享文件夹,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 服务器绝对安全简要设置策略操作指南第1/2页

    偶这里是针对的WIN平台,现在的站长大部分都用WIN2003,相信没几个站长用低版本儿的操作系统的!...2016-01-27
  • 史上最便捷搭建Zookeeper服务器的方法(推荐)

    由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。这篇文章主要介绍了史上最便捷搭建Zookeeper服务器的方法,需要的朋友可以参考下...2021-05-07