首页
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
Search
1
乐橙CMS影视管理系统最全版本
109,325 阅读
2
VIP视频解析破解电影解析模拟破解影视解析
77,802 阅读
3
乐橙CMS影视管理系统4.0.18版本
16,941 阅读
4
新浪图片链接修复教程集合
15,129 阅读
5
反调试代码调试死机代码禁止F12代码
12,103 阅读
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
登录
Search
标签搜索
PHP
AI
LINUX
微信
MYSQL
树莓派
OpenClaw
ESP32S3
小智AI
P2P
JS
破解
乐橙cms
支付
uniapp
人工智能
技术趋势
智能玩具
ESP32
DIY
子沐~
累计撰写
128
篇文章
累计收到
372
条评论
首页
栏目
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
页面
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
搜索到
59
篇与
的结果
2019-03-31
Strjson博客发布一个PHP版P2P加速 只支持M3U8资源
源码下载:↓[hide]博客交流群QQ群:893570651[/hide]
2019年03月31日
3,981 阅读
11 评论
0 点赞
2019-03-31
Windows VPS一键重装为Linux系统
说明:之前萌咔大佬做的Linux to Windows和Linux to Linux脚本方便了很多人,近期又做出了Windows to Linux脚本,基本上已经全了,这里就分享下。前言有些厂商的机器因策略问题,不支持Windows重装为Linux。例如:腾讯云非大陆区域。有些厂商Windows系统盘会比Linux系统盘大,想要大一点系统盘。例如: AZURE、AWS等。有些厂商不支持VNC,这对于转换系统实在不方便。这篇文章可以解决以上问题。使用下载文件:萌咔来源、本站来源。双击打开此文件。自行选择选项。按回车重启,并等待安装完成。注意事项1、如果对提供安装的发行版不满意,请参考此文章→传送门。默认提供的是Debian8(Jessie),添加了firmware包,提供了更多的驱动支持,DHCP模式一键。非DHCP模式,如果要一键,则需要自己定制镜像。定制Debian系镜像应该没问题,其他未作测试。默认root账户密码Vicer。2、如果厂商不支持VNC,则需要自己定制镜像。定制方法请参考此文章→传送门。主要在镜像中添加机器的网络参数,以便支持一键安装。命令示例:#定制带网络参数的initrd.img bash InstallNET.sh -d 8 -v 64 -a --ip-addr <IP> --ip-mask <NetMask> --ip-gate <GATE> --loader #需要dd安装其他系统(例如 Windows to Windows),定制命令.(网络参数有DHCP的,无需添加.) bash InstallNET.sh -dd <IMAGE_URL.tar> --ip-addr <IP> --ip-mask <NetMask> --ip-gate <GATE> --loader完成后将initrd.img和vmlinuz存放到能直链下载的位置。3、如果厂商支持VNC,则可以直接全部选1。安装的时候,自己填IP地址,子网掩码,网关,DNS服务器。DNS服务器推荐填:8.8.8.8。4、区分是否为DHCP模式非DHCP模式:如上图,显示了详细的IP地址。(选中:使用下面的IP地址)DHCP模式:参考上图。(选中:自动获得IP地址)相关教程Linux VPS纯净版CentOS系统一键安装脚本Linux VPS无限制一键全自动DD安装Windows脚本Linux VPS纯净版Debian/Ubuntu系统一键安装脚本文章来源:https://moeclub.org/2018/10/31/670/
2019年03月31日
1,818 阅读
0 评论
0 点赞
2019-03-31
Linux VPS定时备份服务器/网站数据到Github私人仓库
说明:现在Github被微软收购后,私人仓库已经开始免费了,只能说微软很良心。然后就可以拿来折腾下了,让其充分发挥下作用,这里我们可以用来备份下网站或者服务器一些数据,方法就大概说下。教程首先你肯定需要一个Github账号,没有的可以去注册一个,地址:https://github.com。有了账号就继续看。1、配置Git SSH密钥由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在操作之前,需要先在服务器上生成SSH key。我们先去根目录下使用命令:cd ~ssh-keygen -t rsa这里会要你命名密匙名称(这里建议使用默认名称),然后连续按几次Enter,这时候会在/root/.ssh文件夹生成2个ssh密钥,然后我们查看公钥id_rsa.pub。cat ~/.ssh/id_rsa.pub查看后,再复制下公钥,然后打开Github官网,进入https://github.com/settings/ssh/new,Title随便填,然后Key填入刚刚复制的密匙,最后点击Add SSH Key添加即可。请输入图片描述2、建立私人仓库我们需要先访问https://github.com/new,新建一个仓库用来存放备份文件,名称自己随意,记得下面一定要勾选Private,也就是私人仓库。不然你辛辛苦苦备份的小姐姐就要被别人偷走了。请输入图片描述3、配置本地仓库由于博主是用来备份网站,所以需要备份文件夹为/home/www.moerats.com,也就是把该文件夹定为本地仓库,使用命令:进入需要备份的文件夹cd /home/www.moerats.com初始化你的github仓库git init关联到远程github仓库git remote add origin git@github.com:iiiiiii1/MOERATS.git关联仓库的时候,后面可以用HTTPS链接也可以用SSH,这里强烈建议选择SSH,安全性很高。请输入图片描述4、初次备份进入备份的文件夹cd /home/www.moerats.com把目录下所有文件更改状况提交到暂存区,包括增,删,改。git add -A提交更改的说明,说明随意了,这里为backsitegit commit -m "backsite"开始推送到Githubgit push -u origin master推送的时候可能会提示The authenticity of host 'github.com' can't be established.信息,直进yes即可。然后可以看到仓库的备份文件了。请输入图片描述5、设置定时备份在根目录先新建一个bash脚本:nano ~/gitback.sh代码如下:!/bin/bash进入到网站根目录,记得修改为自己的站点cd /home/xxx.com将数据库导入到该目录,这里以mysql为例,passwd为数据库密码,typecho为数据库名称,typecho.sql为备份的数据库文件mysqldump -uroot -ppasswd typecho > typecho.sqlgit add -Agit commit -m "backsite"git push -u origin master然后编辑好了后,使用ctrl+x,y保存退出。再测试下脚本,使用命令:bash ~/gitback.sh脚本没问题的话,再设置为每天05:15执行一次:并将运行日志输出到根目录的siteback.log文件echo "15 05 * bash ~/gitback.sh > ~/siteback.log 2>&1 &" > bt.croncrontab bt.cronrm -rf bt.cron最后使用crontab -l命令查看添加成功没。成功的话,就基本上算完成了。推送失败如果你将本地文件夹推送到Github失败的话,常见原因有2种,具体如下。1、邮件问题报错提示:Your push would publish a private email address.这里可能是你将你的邮件地址私密了,解决方法如下:方法一,如果你想一直保持私密,可以选择方法二访问https://github.com/settings/emails,将Keep my email address private的勾去掉。方法二1、访问https://github.com/settings/emails,将Block command line pushes that expose my email的勾去掉。2、设置你的github邮箱,修改成自己的再运行命令:git config --global user.email "admin@moerats.com"2、密匙问题报错提示:Permission denied (publickey).大概的原因就是,你设置密匙的时候改成了其它名称,而ssh默认只读取id_rsa,所以会显示没权限。解决方法如下:方法一进入根目录的.ssh文件夹,将你的github密匙文件,重新更名为id_rsa。方法二将github密匙添加到ssh agent,比如密匙名称为github,使用命令:ssh-agent bashssh-add ~/.ssh/github总结使用该方法备份网站是个不错的选择,不过别用来备份大文件东西,比如电影什么的,听说有限制,具体多少暂时还没测试。
2019年03月31日
1,623 阅读
0 评论
0 点赞
2019-03-31
Linux网络优化加速一键脚本
在之前的文章里我说过:对于出口带宽,我们常常采用BBR,锐速等TCP加速软件来争夺带宽提高自己的速度。但是原版的BBR并没有太多侵略性,在这个人人都用TCP加速的大环境下,BBR的加速功效就略显不足了。loc的大佬专门改进了下这个BBR,使BBR具有了侵略性。最近我也连续购买了几个服务器,每次都手动搭建,感觉到十分麻烦,干脆写个脚本吧。由于是第一次接触shell脚本这一方面的内容,写起来感觉十分吃力,且与一般的高级语言语法差别有些大。所有有些不足的地方欢迎在下方评论反馈。同时也加入了锐速一键换内核,锐速一键安装,自动根据vps情况优化锐速参数,一键优化内核参数。也可以在锐速,BBR,BBR魔改版中自由切换。 wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" chmod +x tcp.sh ./tcp.sh脚本说明[scode type="green"]支持系统Centos 6+ / Debian 7+ / Ubuntu 14+BBR魔改版不支持Debian 8[/scode]如果在删除内核环节出现这样一张图注意选择NO根据自己需求操作,重启后再使用./tcp.sh命令接着操作脚本会自动检测安装的情况,请注意脚本菜单下的状态检测即可。
2019年03月31日
2,380 阅读
0 评论
0 点赞
2019-03-31
P2P云点播
P2P对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。“Peer”在英语里有“对等者、伙伴、对端”的意义。因此,从字面上,P2P可以理解为对等计算或对等网络。国内一些媒体将P2P翻译成“点对点”或者“端对端”,学术界则统一称为对等网络(Peer-to-peer networking)或对等计算(Peer-to-peer computing),其可以定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)。在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如CPU计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。简单的说,P2P就是直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。目前P2P点播的P2P环境将由WebTorrent实现,尽可能的通过WebRTC进行对等传输,H5的对等网络P2P环境诞生。<?php echo 111;?>
2019年03月31日
1,983 阅读
0 评论
0 点赞
2019-03-28
根据浏览器判断微信还是支付宝
<?php //判断是否微信浏览器 function isWechat(){ if(strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger') !==false){ return true; }else{ return false; } } //判断是不是支付宝 function isAlipay() { if (strpos($_SERVER['HTTP_USER_AGENT'], 'AlipayClient') !== false) { return true; }else { return false; } } ?>
2019年03月28日
1,678 阅读
0 评论
1 点赞
2018-09-11
PHP代码网站对接公众号,实现自动回复
<?php // -----可配置区域开始------------- //微信令牌,请与微信公众号后台同步 define("TOKEN", "weixin"); //解析地址 define("API", "你的解析地址"); //显示数量 define("NUM", "5"); //公众号名称 define("TITLE", "橙子影视"); //默认图片 define("PIC", "默认图片地址"); //留言本地址 define("BOOK", "留言本地址"); // -----可配置区域结束------------- $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); class wechatCallbackapiTest { public function CheckUrl($url) { return preg_match('/(http|https|ftp):\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is',$url); } public function valid() { $echoStr = $_GET["echostr"]; if($echoStr==""){ $this->responseMsg(); }elseif($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg(){ $postStr = addslashes(file_get_contents('php://input')); if (empty($postStr)){exit("你好!请关注【".TITLE."】微信公众号获取服务");} $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $time=$postObj->CreateTime; $keyword = trim($postObj->Content); $event = $postObj->Event; $textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content></xml>"; $newsTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item></Articles></xml>"; switch($postObj->MsgType){ case 'event': if($event == 'subscribe'){ //关注后的回复 $contentStr = "欢迎关注".TITLE."\r\n本公众号提供在线影视观看,免广告看VIP视频,持续关注,精彩多多。\r\n输入格式:\r\n 1.输入电影名,如: 西游记 即可在线观看!\r\n2.输入视频网址,支持爱奇艺,优酷,腾讯等主流视频网站免VIP播放。\r\n3.回复数字:\r\n 【0】 显示帮助\r\n 【1】打开留言板"; $msgType = 'text'; $textTpl = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $textTpl; break; } case 'text': //输入文字 if(preg_match('/[\x{4e00}-\x{9fa5}]+/u',$keyword)) { $result = file_get_contents(API."/api.php?tp=json&wd=".$keyword); $result= json_decode($result,true); if($result && $result["success"]){ $txt .="恭喜,成功找到视频,请点击播放:\r\n\n"; $i=1; foreach( $result["info"] as $row){ $title = $row['title']; $url=API."/?wd=".urlencode($title)."&id=".$row['id']."&flag=".$row['flag']."&type=".$row['type']; $url=self::getContentLink($url); $pic= $row['pic']; $txt .= "<a href='".$url."'>·".urldecode($title)."</a>\r\n\n"; $i++; if($i>NUM){break;} } $contentStr = $txt.'<a href="'.API."/?wd=".$keyword.'">【更多】...</a>'; $msgType = 'text'; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; } else{ //没有查找到的时候的回复 $title = "资源未找到,点击图片留言反馈! "; $des1 =""; //图片地址 $picUrl1 =PIC; //跳转链接 $url=self::getContentLink(BOOK); $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; } //其他 }else if($this->CheckUrl($keyword)){ $title = '点击开始播放'; $des1 =""; //图片地址 $picUrl1 =PIC; //跳转链接 $url=API."/?url=".$keyword.""; $url=self::getContentLink($url); $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; }else if($keyword=="0"){ $contentStr = "欢迎关注".TITLE."\r\n本公众号提供在线影视观看,免广告看VIP视频,持续关注,精彩多多。\r\n输入格式:\r\n 1.输入电影名,如: 西游记 即可在线观看!\r\n2.输入视频网址,支持爱奇艺,优酷,腾讯等主流视频网站免VIP播放。\r\n3.回复数字:\r\n 【0】 显示帮助\r\n 【1】打开留言板"; $msgType = 'text'; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else if($keyword=="1" ){ $title = '点击打开留言板'; $des1 =""; //图片地址 $picUrl1 =PIC; //跳转链接 $url=self::getContentLink(BOOK); $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; }else{ $contentStr = "输入格式:\r\n 1.输入电影名,如: 西游记 即可在线观看!\r\n2.输入视频网址,支持爱奇艺,优酷,腾讯等主流视频网站免VIP播放。\r\n 3.回复数字:\r\n 【0】 显示帮助\r\n 【1】打开留言板 "; $msgType = 'text'; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }; break; default: break; }// switch end } private function checkSignature(){ // you must define TOKEN by yourself if (!defined("TOKEN")) { throw new Exception('TOKEN is not defined!'); } $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); // use SORT_STRING rule sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } private function getContentLink($url){ $api="http://api.t.sina.com.cn/short_url/shorten.json?source=2815391962&url_long="; $result = file_get_contents($api.$url); $result= json_decode($result,true); return $result[0]["url_short"]; } }
2018年09月11日
1,747 阅读
0 评论
0 点赞
2017-10-16
乐视视频解析源码,VIP影片需要提供账号
<?php $id = Le::parse($url); $video_info = Le::parseVideoUrl($id); echo json_encode($video_info); /** * */ class Le { public static function parse($url) { preg_match('#vplay/(.*?).htm#',$url,$ids); if ($ids[1]) { $name = "LE-".md5($ids[1]); }else{ $name = "LE-".md5($url); } if (file_exists(NAME_PATH.$name)) { $data = json_decode(file_get_contents(NAME_PATH.$name),true); $pay = $data['pay']; $vid = $data['vid']; $title = $data['title']; $poster = $data['poster']; }else{ $content = self::curl($url); preg_match('#vid: (.*?),#',$content,$vids); preg_match('#title:"(.*?)",#',$content,$titles); preg_match('#videoPic:"(.*?)",#',$content,$pics); preg_match('#isPay: (.*?),#',$content,$isPay); $vid = $vids[1]; $title = $titles[1]; $poster = !empty($pics[1]) ? str_replace('320_200','640_320',$pics[1]) : ''; $pay = $isPay[1];//是否付费 file_put_contents(NAME_PATH.$name, json_encode(array("vid"=>$vid,"pay"=>$pay,"title"=>$title,"poster"=>$poster))); } return $vid; } public static function parseVideoUrl($vid){ $time = number_format(microtime(true),3,'.',''); $tkey = self::getMmsKey($time); $tss = GlobalBase::is_ipad() ? "no" : "ios"; $splatid = GlobalBase::is_ipad() ? 107 : 105; $domain = GlobalBase::is_ipad() ? 'm.le.com' : 'www.le.com'; $source = GlobalBase::is_ipad() ? '1001' : '1000'; //$url = "http://player-pc.le.com/mms/out/video/playJson?id={$vid}&format=1&tkey={$tkey}&domain=www.le.com&dvtype=1000®ion=cn&accessyx=1&platid=3&splatid=304&source=1000&tss=no"; $url = "http://player-pc.le.com/mms/out/video/playJson?id={$vid}&platid=1&splatid={$splatid}&format=1&tkey={$tkey}&domain={$domain}&dvtype=720p&devid=70A6E0A1FB93DA437B79DA594B3C9D03B428043B®ion=cn&source={$source}&accessyx=1&tss={$tss}";//&tss=tvts $data = self::curl($url); //print_r($data);exit; $content = json_decode($data,true); $playurl = $content["msgs"]["playurl"]; $point = $content["msgs"]["point"]; $hot = $point["hot"]; $seek = $point["skip"][0]; $pic = $playurl["picAll"]["640*320"]; $domains = array("http://play.g3proxy.lecloud.com","http://bplay.g3proxy.lecloud.com","http://g3.letv.com"); $domain = $domains[0];//$domains[mt_rand(0,count($domains)-1)]; $dispatch = $playurl["dispatch"]; $duration = $playurl["duration"]; foreach ($dispatch as $key => $value) { switch ($key) { case '350':$def = "流畅";break; case '1000':$def = "超清";break; case '1300':$def = "原画";break; case '720p':$def = "720P";break; case '1080p':$def = "1080P";break; } $vurl = $domain.$value[0];//self::getVideoUrl($domain.$value[0]."&format=1&expect=3&sign=letv"); //&format=1为json &format=1为xml preg_replace("#/vod/v2/#","/ if (GlobalBase::is_ipad()) { if($key =="1000"){ $videoinfo['code'] = 200; //$videoinfo['type'] = 'le'; //$videoinfo['play'] = 'h5mp4'; $videoinfo["data"]["url"] = $vurl; return $videoinfo;exit; } }else{ if ($key == '1300' && $vurl != '') { $fdata[0]['url'] = $vurl; $fdata[0]['def'] = '原画'; } if ($key == '1080p' && $vurl != '') { $fdata[1]['url'] = $vurl; $fdata[1]['def'] = '1080P'; } if ($key == '1000' && $vurl != '') { $fdata[2]['url'] = $vurl; $fdata[2]['def'] = '超清'; } if ($key == '720p' && $vurl != '') { $fdata[3]['url'] = $vurl; $fdata[3]['def'] = '720P'; } if ($key == '350' && $vurl != '') { $fdata[4]['url'] = $vurl; $fdata[4]['def'] = '流畅'; } } } for ($i=0; $i <= 10 ; $i++) { if ($fdata[$i] == '') {continue;} $key_arrays[]=$fdata[$i]; } $videoinfo['code'] = 200; $videoinfo['poster'] = $img; $videoinfo['name'] = $video_info["coreVideoInfo"]["videoName"]; $videoinfo['play'] = ''; $videoinfo["data"]["video"]["file"] = $key_arrays[0]['url']; $videoinfo["data"]["video"]["type"] = "video/m3u8"; return $videoinfo; } public static function curl($url,$cookie="") { $params["ua"] = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"; $params["cookie"] = $cookie; return GlobalBase::curl($url,$params); } //==================================================以下代码不需要修改========================================================== /** * [getVideoUrl 获取视频最终地址] * @param [type] $url [description] * @return [type] [description] */ private static function getVideoUrl($url){ $data = GlobalBase::curl($url); $content = json_decode($data,true); $location = $content["location"]; $nodelist = $content["nodelist"]; $vurl = $nodelist[mt_rand(0,count($nodelist)-1)]["location"]; return $location; } //========================================= 方式二 ================================================= /** * [getMmsKey 获取tkey] * @param [type] $e [时间] * @return [type] [description] */ private static function getMmsKey($e) { $t = 185025305; $r = 8; $n = $e; $n = self::rotateRight($n, $r); $o = self::s2v("O",$n, $t); return $o; } private static function rotateRight($e, $t) { for ($r, $n = 0; self::s2v("g",$t, $n); $n++){ $r = self::s2v("o",1,$e); $e >>= 1; $r <<= 31; $e += $r; } return $e; } private static function s2v($k,$y,$r){ switch ($k) { case 'D':return $y | $r;break; case 'd':return $y % $r;break; case 'O':return $y ^ $r;break; case 'k':return $y < $r;break; case 'J':return $y >> $r;break; case 'R':return $y === $r;break; case 'g':return $y > $r;break; case 'o':return $y & $r;break; case 'l':return $y !== $r;break; case 'L':return $y != $r;break; case 'a':return $y - $r;break; case 'u':return $y == $r;break; case 'e':return $y << $r;break; } } } ?>
2017年10月16日
1,761 阅读
0 评论
0 点赞
2017-08-31
锁定DNS不被更改
最近在修改VPS的DNS后,经常出现重启后就恢复原来的DNS。简单搜索一下,发现主要是因为设置通过DHCP来获取IP地址、网关、Dns等信息,每次重新从网卡出获取DNS并且写入到/etc/resolv.conf的文件中。看了网上的修改方法大多都是修改eth0的网卡配置,但其实不用那么麻烦,只需要给/etc/resolv.conf添加只读属性,即可解决。修改/etc/resolv.conf文件后执行:chattr +i /etc/resolv.conf如果想修改请先执行:chattr -i /etc/resolv.conf
2017年08月31日
2,081 阅读
0 评论
0 点赞
1
...
5
6