<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[黑蜘蛛网络]]></title> 
<description><![CDATA[（4dn.net)专注网络技术分享,主要分享程序源码,网络技术,免费空间,模板插件,活动分享,各类教程,软件,QQ资源,致力创造一个高质量分享平台.]]></description>
<link>https://4dn.net/</link>
<language>zh-cn</language>
<generator>www.emlog.net</generator>
<item>
    <title>守护神-远程端口修改器</title>
    <link>https://4dn.net/jsxx/306.html</link>
    <description><![CDATA[<p><a target="_blank" href="https://4dn.net/content/uploadfile/202502/104f1740149180.png" id="ematt:528" rel="noopener"><img title="插入" src="https://4dn.net/content/uploadfile/202502/104f1740149180.png" alt="20250221224553.png" width="100%" height="211" border="0" /></a></p>]]></description>
    <pubDate>Fri, 21 Feb 2025 14:45:04 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/306.html</guid>

</item>
<item>
    <title>启用/禁用iis</title>
    <link>https://4dn.net/jsxx/305.html</link>
    <description><![CDATA[<h2>启用/禁用iis代码：</h2><pre class="language-markup"><code>@echo off
echo 启用/禁用iis

iisreset /status
echo  请输入1启用iis，或者输入0关闭iis
echo =============================
set /p input="输入："
if %input%==1 (
	sc config WAS start= auto
	sc config W3SVC start= auto
	sc start "WAS"
	sc start "W3SVC"	
	iisreset /start
	echo 启动完毕，退出
	pause
	exit
	
) 

if %input%==0 (
	sc config WAS start= disabled
	sc config W3SVC start= disabled
	sc stop "WAS"
	sc stop "W3SVC"
	iisreset /stop
	echo 关闭服务，退出
	pause
	exit
) </code></pre><p><span class="attachment"><a target="_blank" href="https://4dn.net/content/uploadfile/202502/29911740149049.zip" rel="noopener">禁用IIS.zip</a></span></p>]]></description>
    <pubDate>Fri, 21 Feb 2025 14:42:34 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/305.html</guid>

</item>
<item>
    <title>格式化D盘_win通用</title>
    <link>https://4dn.net/jsxx/304.html</link>
    <description><![CDATA[<h2>代码：</h2><pre class="language-markup"><code>@echo off
echo 此程序将会格式化D盘并且删除所有D盘数据,确认操作无误请输入 0 .否则请关闭
echo 首次装系统可运行，重装系统请不要运行,会删除所有数据

echo =====================
set /p input="确定要删除所有D盘数据？注意删除后不可找回[0]"


if %input%==0 (
	goto cleandisk
) else (
	echo  取消操作并退出
	pause
	exit
)


:cleandisk

	echo select disk 1 &gt;out.txt
	echo clean &gt;&gt; out.txt
	echo create partition extended &gt;&gt; out.txt
	echo create partition logical  &gt;&gt; out.txt
	echo assign letter=D &gt;&gt; out.txt
	echo exit &gt;&gt; out.txt
	diskpart /s out.txt
	del out.txt
	
	;echo y|format d: /q /FS:NTFS	

	pause
</code></pre><p><span class="attachment"><a target="_blank" href="https://4dn.net/content/uploadfile/202502/95951740148329.zip" rel="noopener">格式化D盘_win通用.zip</a></span></p>]]></description>
    <pubDate>Fri, 21 Feb 2025 14:29:18 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/304.html</guid>

</item>
<item>
    <title>PHP中如何防止跨域名调用接口教程</title>
    <link>https://4dn.net/jsxx/303.html</link>
    <description><![CDATA[<p>用过ajax的童鞋就知道ajax可以跨域触发某个接口，但是由此引起一个任何域都可以调用的问题，这时候就要考虑用到防盗链技术了，在PHP中$_SERVER["HTTP_REFERER"]，$_SERVER["HTTP_REFERER"]里放置的是链接到本页面的上一个页面的URL，假如你是直接进来的话，$_SERVER["HTTP_REFERER"]是没有值的。下面以一个简单的实例介绍一下，PHP如何防伪造提交数据：</p><h3>1、非4dn.net调用的接口全部拒绝访问</h3><pre class="language-markup"><code>&lt;?php
$sheli = $_SERVER['HTTP_HOST'];if($sheli){$url = parse_url($sheli);if($url['path'] != '4dn.net'){exit('拒绝访问！');}} 
?&gt;</code></pre><h3>2、允许在4dn.net子域名间调用的方法</h3><pre class="language-markup"><code>&lt;?php
$sheli = $_SERVER['HTTP_HOST'];  
if($sheli){$url = parse_url($sheli);$t=explode('.',$url['path']);$l=count($t);$domainStr=$t[$l-2].'.'.$t[$l-1];if($domainStr != '4dn.net') {echo('拒绝访问！');}} 
?&gt;</code></pre>]]></description>
    <pubDate>Mon, 30 Sep 2024 06:30:08 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/303.html</guid>

</item>
<item>
    <title>php 判断当前url是http还是https</title>
    <link>https://4dn.net/jsxx/302.html</link>
    <description><![CDATA[<h2>php 判断当前url是http还是https，代码如下：<br /><br /></h2><pre class="language-markup"><code>&lt;?php 
$slhttp = ((isset($_SERVER['HTTPS']) &amp;&amp; $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &amp;&amp; $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://'; 
echo $slhttp;
?&gt;</code></pre>]]></description>
    <pubDate>Mon, 30 Sep 2024 04:17:28 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/302.html</guid>

</item>
<item>
    <title>JS定时执行代码</title>
    <link>https://4dn.net/jsxx/301.html</link>
    <description><![CDATA[<h2>由于本人对于JS代码不熟悉，甚至只是小白，发出来记录一下，大佬勿喷</h2><h2>定时9秒后不显示内容：</h2><pre class="language-markup"><code> &lt;script&gt;  setTimeout(function(){//定时器 
$('#img').css("display","none"); //将display属性设置为none，指定ID属性不显示
// $('img').css("display","none"); //所有img标签的图片不显示，不一定非要图片，可自行修改
},9000); //9秒后不显示
&lt;/script&gt;</code></pre><h2>定时9秒后自动显示内容：</h2><pre class="language-markup"><code>&lt;p id="img"&gt;原文字&lt;/p&gt;

&lt;script&gt;  setTimeout(function(){//定时器 
document.getElementById("img").innerHTML = "&lt;font color=red&gt;新文字&lt;/font&gt;";
},9000); //9秒后自动显示
&lt;/script&gt;</code></pre><h2>JS定时跳转代码，原理很简单和上面代码一样：</h2><pre class="language-markup"><code>&lt;script&gt;
setTimeout(function(){ 
window.location.href="目标页面";
},9000);  //9秒后跳转
&lt;/script&gt;</code></pre><h2>重复执行的定时器：</h2><pre class="language-markup"><code>&lt;script&gt;
var t1 = setInterval(function(){ //setInterval重复执行
alert("你好"); 
},1000);  //每隔1秒执行一次

// window.clearInterval(t1); //去掉重复执行定时器的方法
// window.clearTimeout(t1); //去掉只执行一次定时器的方法
&lt;/script&gt;</code></pre>]]></description>
    <pubDate>Sun, 22 Sep 2024 11:15:09 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/301.html</guid>

</item>
<item>
    <title>PHP实现解析xml为数组方法</title>
    <link>https://4dn.net/jsxx/300.html</link>
    <description><![CDATA[<h2>PHP实现解析xml为数组简单方法</h2><pre class="language-markup"><code>&lt;?php
$xml_data=file_get_contents("xml地址或xml数据");
$xml =simplexml_load_string($xml_data);
$xmljson= json_encode($xml);
$xml=json_decode($xmljson,true);
print_r($xml);</code></pre>]]></description>
    <pubDate>Sun, 22 Sep 2024 11:08:37 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/300.html</guid>

</item>
<item>
    <title>PHP正则表达式</title>
    <link>https://4dn.net/jsxx/299.html</link>
    <description><![CDATA[<pre class="language-markup"><code>&lt;? //s无视换行符，i不区分大小写
$data='&lt;span&gt;123&lt;/span&gt;
&lt;span&gt;
456&lt;/span&gt;
&lt;Span&gt;   789
&lt;/span&gt;';
preg_match_all('/&lt;span&gt;(.*?)&lt;\/span&gt;/isx',$data,$str);
print_r($str);</code></pre><h2>正则表达式的主要作用</h2><p>分割、匹配、查找、替换</p><h2>正则表达式函数</h2><pre class="language-markup"><code>preg_grep($mode,$str) //匹配查找，返回一个数组；

preg_match($mode,$str,$return) //在字符串中查找匹配项，返回一个数组。
preg_match_all($mode,$str,$return [,int flags])
preg_split($mode,$str [,int limit 切割多少次 [,int flags] ] ) //使用正则表达式分割字符串，并将结果以数组的形式返回（类似explode）。
preg_replace($mode,$replacement,$str [,int limit 匹配多少次]) //查找和替换子字符串（类似str_replace）
preg_quote($str) //在每个正则表达式的特殊字符前面加入一个转义字符（反斜线&ldquo;\&rdquo;），正则表达式的特殊字符包括：.\\+*?[^]$(){}=!&lt;&gt;|:</code></pre><h2>正则表达式中包括的元素</h2><p>原子（普通字符：a-z A-Z 0-9 、原子表、转义字符）<br data-filtered="filtered" />元字符（有特殊功能的字符）<br data-filtered="filtered" />模式修正符（系统内置部分字符 i 、m、S、U&hellip;）</p><h2>转义字符</h2><p>&nbsp;</p><p>\d 包含所有数字 [0-9]</p><p>\D 除所有数字外 [^0-9]</p><p>\w 包含所有字符（大小写英文字母、下划线、数字） [a-zA-Z_0-9]</p><p>\W 除所有字符（大小写英文字母、下划线、数字）外 [^a-zA-Z_0-9]</p><p>\s 空白区域如回车、换行、分页等 [\f\n\r]</p><p>\S 非空白区域如回车、换行、分页等 [^\f\n\r]</p><h2>元字符</h2><p>. 匹配任意次但不包含回车换行</p><p>* 匹配任意次</p><p>? 匹配 0 次或 1 次</p><p>+ 匹配 1 次或多次</p><p>| 选择匹配（或者）</p><p>^ 匹配开头（方括号中表示非）</p><p>$ 匹配尾部</p><p>{m} 匹配前一个内容的重复次数为 m 次</p><p>{m,} 匹配前一个内容的重复次数大于等于 m 次</p><p>{m,n} 匹配前一个内容的重复次数 m 次到 n 次</p><p>( ) 合并整体匹配，并放入内存，可使用 \1 \2&hellip; 依次获取</p><h2>模式修正符： 【/ 正则 / U 】</h2><p>小写i 不区分大小写</p><p>小写m 匹配首内容或尾内容时采用多行识别匹配</p><p>小写s 将转义回车取消视为单行匹配</p><p>小写x 忽略正则中的空白</p><p>大写A 强制从头开始匹配</p><p>大写D 强制 $ 匹配尾部无任何内容</p><p>大写U 禁止贪婪匹配，只跟踪到最近的一个匹配符并结束，常用在采集程序</p><p>小写u 匹配中文</p><h2>解题方法总结：</h2><p>1. 先写出一个要匹配的字符串</p><p>2. 自左向右的顺序使用正则表达式的原子和元字符拼接</p><p>3. 加入模式修正符</p><h2>常用正则</h2><pre class="language-php"><code>//删除一对中括号内的内容：
$str = 'abc[url]123[/url]xyz';
$pattern = '/\[url\S*\[\/url\S*\]/';
$str = preg_replace($pattern, '', $str);
echo $str . ''; //输出：abcxyz
 
//PHP匹配多对中括号中的内容：
$str = '这是[3]def[25]我的[26]';
$pattern = '/\[([a-z0-9]+)\]/';
preg_match($pattern, $str, $match);
print_r($match);
 
//匹配所有大括号里面的内容:
$str = 'abc{title}def{author}mn';
$pattern = '/{(.*)}/U';
preg_match($pattern, $str, $match);
print_r($match);
 
//匹配网页源代码中的图片路径：
$str = '&lt;img alt="标题" id="pic" src="http://test.cn/avatar.jpg" /&gt;';
$pattern = '/&lt;img.*?src="(.*?)".*?\/?&gt;/i';
preg_match($pattern,$str,$match);
print_r($match);
 
//匹配当前页面的所有超链接：
$str = '&lt;a href="http://www.test.com/a.html"&gt;跳转&lt;/a&gt;';
$pattern = '/&lt;a(.*?)href="(.*?)"(.*?)&gt;(.*?)&lt;\/a&gt;/i';
preg_match($pattern, $str, $match);
print_r($match);
 
//匹配邮件
$str = '12345@qq.com';
$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i";
preg_match($pattern, $str, $match);
print_r($match);
 
//匹配11位手机号：
$str = '13299803211';
$pattern = "/^1(3|5|8)\d{9}$/";
preg_match($pattern, $str, $match);
print_r($match);
 
//匹配139开头的11位手机号码
$str = '13912345678';
$pattern = '/^139\d{8}$/';
preg_match($pattern,$str,$match);
print_r($match);
 
//UTF-8编码下提取字符串中的中文：
$str = 'hello 中文 byebye';
$pattern = '/[\x{4e00}-\x{9fa5}]+/u';
preg_match($pattern, $str, $match);
print_r($match); //&ldquo;中文&rdquo;
 
//替换字符串中的中文为空
$res = preg_replace($pattern,'',$str);
echo $res.&rsquo;';
 
//分割中文字符串为等长度元素的数组(英文可以用str_split，但中文会乱码)
$str = '中文字符串';
$res = preg_split('/(?&lt;!^)(?!$)/u', $str);
print_r($res);
 
//过滤网页上的所有script标记
$str = '&lt;script type="text/javascript" src="dd.js"&gt;alert(123);&lt;/script&gt;&lt;p style="color: red"&gt;测试php正则匹配掉js代码&lt;/p&gt;';
$pattern = "/&lt;script[\s\S]*?&lt;\/script&gt;/i"; //过滤JS标签
$pattern = "/&lt;[\/\!]*?[^&lt;&gt;]*?&gt;/si"; //过滤HTML标签
$res = preg_replace($pattern, "", $str);
echo $res.&rsquo;';
 
//替换&lt;b&gt;标签为空
$str = '&lt;b&gt;abc&lt;/b&gt;&lt;b&gt;abc&lt;/b&gt;';
$pattern = '/&lt;b&gt;(.*?)&lt;\/b&gt;/';
$res = preg_replace($pattern,'\\1',$str);
echo $res.'';</code></pre>]]></description>
    <pubDate>Sun, 22 Sep 2024 11:01:50 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/299.html</guid>

</item>
<item>
    <title>Linux系统打包和压缩文件命令</title>
    <link>https://4dn.net/jsxx/298.html</link>
    <description><![CDATA[<pre class="language-markup"><code>bunzip2 file1.bz2   #解压一个叫做 'file1.bz2'的文件
bzip2 file1         #压缩一个叫做 'file1' 的文件
gunzip file1.gz     #解压一个叫做 'file1.gz'的文件
gzip file1          #压缩一个叫做 'file1'的文件
gzip -9 file1       #最大程度压缩

rar a file1.rar test_file          #创建一个叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1   #同时压缩 'file1', 'file2' 以及目录 'dir1'
rar x file1.rar     #解压rar包
unrar x file1.rar   #解压rar包

tar -cvf archive.tar file1   #创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1  #创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
tar -tf archive.tar    #显示一个包中的内容
tar -xvf archive.tar   #释放一个包
tar -xvf archive.tar -C /tmp     #将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1   #创建一个bzip2格式的压缩包
tar -jxvf archive.tar.bz2        #解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1    #创建一个gzip格式的压缩包
tar -zxvf archive.tar.gz         #解压一个gzip格式的压缩包

zip file1.zip file1    #创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1    #将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip    #解压一个zip格式压缩包</code></pre>]]></description>
    <pubDate>Sun, 15 Sep 2024 09:30:41 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/298.html</guid>

</item>
<item>
    <title>Linux系统网络操作相关命令</title>
    <link>https://4dn.net/jsxx/297.html</link>
    <description><![CDATA[<pre class="language-markup"><code>ifconfig eth0    #显示一个以太网卡的配置
ifup eth0        #启用一个 'eth0' 网络设备
ifdown eth0      #禁用一个 'eth0' 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0     #控制IP地址
ifconfig eth0 promisc     #设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)
dhclient eth0            #以dhcp模式启用 'eth0'

route -n    #查看路由表
route add -net 0/0 gw IP_Gateway    #配置默认网关
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
#配置静态路由到达网络'192.168.0.0/16'
route del 0/0 gw IP_gateway        #删除静态路由

hostname #查看机器名
host www.example.com       #把一个主机名解析到一个网际地址或把一个网际地址解析到一个主机名。
nslookup www.example.com   #用于查询DNS的记录，查看域名解析是否正常，在网络故障的时候用来诊断网络问题。
ip link show            #查看网卡信息
mii-tool                #用于查看、管理介质的网络接口的状态
ethtool                 #用于查询和设置网卡配置
netstat -tupl           #用于显示TCP/UDP的状态信息
tcpdump tcp port 80     #显示所有http协议的流量</code></pre>]]></description>
    <pubDate>Sun, 15 Sep 2024 09:28:04 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/297.html</guid>

</item>
<item>
    <title>开启群晖SSH功能以及创建root账号</title>
    <link>https://4dn.net/jsxx/296.html</link>
    <description><![CDATA[<p>以DS918+ 的7.2版本为例</p><h3>第一步，开启SSH</h3><p><a target="_blank" href="https://4dn.net/content/uploadfile/202408/4a471723196167.png" id="ematt:524" rel="noopener"><img title="插入" src="https://4dn.net/content/uploadfile/202408/4a471723196167.png" alt="1.png" width="100%" height="826" border="0" /></a></p><p><a target="_blank" href="https://4dn.net/content/uploadfile/202408/fb5c1723196167.png" id="ematt:522" rel="noopener"><img title="插入" src="https://4dn.net/content/uploadfile/202408/fb5c1723196167.png" alt="2.png" width="100%" height="813" border="0" /></a></p><p>控制面板&ndash;》 终端机和SNMP&nbsp;==》 启动SSH功能，并设置端口保存。</p><h3>第二步，开启root账号</h3><p>第一次登录使用你平常登录的群晖账号。<br data-filtered="filtered" />登录ssh==》sudo -i （切换root用户，提示输入用户密码）==》 synouser --setpw root 密码 （设置root密码）。</p><h3>切换最高权限账号命令：</h3><pre class="language-markup"><code>sudo -i</code></pre><p>注意上面命令后，输入的是你当前登录的账号的密码</p><h3>设置root密码命令：</h3><pre class="language-markup"><code>synouser --setpw root 你的密码</code></pre><p>还需要设置&nbsp;<strong>PermitRootLogin&nbsp;</strong></p><pre class="language-markup"><code>vi /etc/ssh/sshd_config</code></pre><p>找到这一行<br data-filtered="filtered" /><strong>#PermitRootLogin prohibit-password</strong><br data-filtered="filtered" />并修改为<br data-filtered="filtered" /><strong>PermitRootLogin yes</strong><br data-filtered="filtered" />按<code>i</code>键，进入编辑模式；按<code>Esc</code>键退出编辑模式；然后输入<code>:wq</code>保存退出；输入<code>:q!</code>放弃保存。</p><p>保存退出后需要重启群晖生效。</p><pre class="language-markup"><code>reboot</code></pre>]]></description>
    <pubDate>Fri, 09 Aug 2024 09:32:16 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/296.html</guid>

</item>
<item>
    <title>win系统压缩/解压.tar.gz 文件的方法</title>
    <link>https://4dn.net/jsxx/295.html</link>
    <description><![CDATA[<h2>一、将文件压缩成.tar.gz 文件</h2><p>进入到被压缩文件的文件夹，点击右键打开Windows PoweShell，</p><h3>输入下面命令：</h3><pre class="language-markup"><code>tar -cvzf file_name.tar.gz "path"</code></pre><p>path 可以为文件名或者文件夹名</p><h2>二、解压.tar.gz文件</h2><p>&nbsp;进入到.tar.gz文件所在的文件夹，点击右键打开Windows PoweShell，</p><h3>输入下面命令：</h3><pre class="language-markup"><code>tar -zxvf file_name.tar.gz</code></pre>]]></description>
    <pubDate>Tue, 23 Jul 2024 06:48:11 +0000</pubDate>
    <author>ღ軍尐ღ</author>
    <guid>https://4dn.net/jsxx/295.html</guid>

</item></channel>
</rss>