Category Archives: 技术学习

学而时习之!

使用浏览器特征检测浏览器

// Opera 8.0+ var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(’ OPR/’) >= 0; // Firefox 1.0+ var isFirefox = typeof InstallTrigger !== ‘undefined’; // Safari 3.0+ "[object HTMLElementConstructor]" var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window[’safari’] || (typeof safari !== ‘undefined’ && safari.pushNotification)); // Internet Explorer… Read More »

MYSQL数据库的一些常用操作

mysql查询重复数据(把有重复的给列出来) SELECT * FROM `it_info` GROUP BY `last_name` HAVING COUNT(*)>1 使用replace批量更新SQL某个字段的某个字符,比如批量替换last_name里包含的’位空 update `user` set `last_name`=REPLACE(`last_name`,"’","") WHERE `last_name` LIKE "%’%" Think PHP 查询数据库某一个字段的唯一值  Db::table(’user’)->distinct(true)->field(’class’)->select(); 这将仅取出 class 唯一值的列表 Db::table(’user’)->group(’class’)->order(’name desc’)->select(); 这将取出class唯一的每一条记录,组成列表 随机取同一个字段里面,不同分组的一条记录  Db::table(’user’) ->where(’status’,1) ->orderRand() ->buildSql(); 先构建一个子查询,把所有值随机排序  Db::table($subQuery . ‘ a’) ->group(’class’) ->orderRand() ->select(); 然后再把子查询的值分组

js replace 全局替换的操作方法

js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换。 <script language="javascript"> var strM = "这是要被替换的字符串啊啊!"; //在此我想将字母a替换成字母A alert(strM.replace("啊","额")); </script> 上面这段代码,只能替换第一个字符“啊”,第二个“啊”就无法替换,这样就没办法满足大多数使用js(replace)的需求 <script type="text/javascript" language="javascript"> var s = "这是要被替换的字符换啊啊!"; alert(s); alert(s.replace(/啊/g, "额")); 这样,就可以实现整个字符串的替换。 我们这里用到了正则函数的/g全部的使用。这样就可以实现整个字符串的替换效果。 下面,我们大家可能还有个需求无法满足,那就是,我们替换定值可以使用这个,但是替换变量怎么使用? 接下来,就说一下替换变量的使用方式。 简单介绍一下eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。接下来主要靠这个函数。 <script> var ch = "变量"; var reg = "/"+ch+"/g"; var str = "这是一个变量,这是一个变量"; var val = str.replace(eval(reg),"替换"); alert(val); </script> 但是如果要替换的字符串中含有/符号时,上面的就不能用了,需要采取以下方法 <script> var ch =… Read More »

JS解密相关资料

Javascript \x 反斜杠x 16进制 编解码: js 里 \x 开头的通常是16进制编码的数据,下面代码实现编解码: 解码 function decode(str){ return str.replace(/\\x(\w{2})/g,function(_,$1){ return String.fromCharCode(parseInt($1,16)) }); } decode(’\x5f\x63\x68\x61\x6e\x67\x65\x49\x74\x65\x6d\x43\x72\x6f\x73\x73\x4c\x61\x79\x65\x72’) "_changeItemCrossLayer" 编码 function encode(str){ return str.replace(/(\w)/g,function(_,$1){ return "\\x"+ $1.charCodeAt(0).toString(16) }); } encode("_changeItemCrossLayer") "\x5f\x63\x68\x61\x6e\x67\x65\x49\x74\x65\x6d\x43\x72\x6f\x73\x73\x4c\x61\x79\x65\x72" 在线解码地址: 批量  https://jscompress.com/   单个 https://www.mokuge.com/tool/js_x16/

禁用WEBRTC隐藏真实IP

WEBRTC为什么检测到我的真实IP地址? 首先,您需要认识到通过WebRTC显示 PC/平板电脑/电话的所有IP地址,不是VPN / tor / socks的问题或缺点,但这是浏览器的问题。 WebRTC项目是由Google创建的,主要用于在用户浏览器(p2p连接)之间传输流数据(音频和视频),而无需任何辅助软件(例如Skype)或插件。这使支持WebRTC的浏览器不仅可以访问您的网络(独立于操作系统),而且可以通过STUN协议检测您的公共IP地址和本地IP地址,从而绕过任何类型的NAT建立p2p连接。 目前,已知在浏览器Chrome(版本23起),Firefox(版本22起)和Opera(版本18起)中默认启用了WebRTC,这使得这些浏览器的用户无法使用匿名功能。您应该禁用WebRTC的支持,以阻止它检测您的公共IP地址和本地IP地址。 如何在Firefox中禁用WebRTC: Mozilla Firefox中的WebRTC自Firefox 22开始受支持,并且默认情况下处于启用状态。 要禁用RTCPeerConnection并防止IP地址泄漏,请转到about:config并切换media.peerconnection.enabled到false。 要禁用媒体设备,请同时将media.navigator.enabled和切换media.peerconnection.enabled至false。 如何在Opera中停用WebRTC: 转到“设置”->“更多设置”在“ WebRTC”部分中,选择“在没有代理的情况下停用UDP” 如何在Chrome中禁用WebRTC: 自Chrome 23版起,默认情况下启用Google Chrome和基于Chromium的网络浏览器中的WebRTC,无法禁用;目前尚不知道如何通过浏览器设置在Chrome中禁用WebRTC的方法;为了防止IP地址泄漏,请使用官方的webrtc.org扩展WebRTC Network Limiter。 如何在Android中使用Chrome禁用WebRTC: 在最新版的适用于Android的Chrome浏览器上,即使设置中存在此类选项,也无法禁用WebRTC。如果您需要在Android上使用禁用了WebRTC的浏览器,建议您使用Firefox for Android。您可以根据上面的Firefox说明在其中禁用WebRTC。

浏览器对象:navigator 解析

Navigator对象的属性 navigator.appCodeName : 浏览器的代码名; 例如:“Mozilla” 浏览器代码名 navigator.appMinorVersion :浏览器的次级版本 navigator.appName :浏览器的名称 浏览器的名称 navigator.appVersion : 浏览器的平台和版本信息;把该字符串传递给 parseInt() 只能获取主版本号。 浏览器的平台和版本信息 浏览器的主版本号 navigator.browserLanguage :当前浏览器的语言 navigator.cookieEnabled :指明浏览器中是否启用cookie的布尔值 浏览器中是否启用cookie navigator.cpuClass :浏览器系统的CPU等级 navigator.onLine :指明系统是否处于脱机模式的布尔值 浏览器是否处于脱机模式 navigator.platform :运行浏览器的操作平台系统 浏览器的操作平台系统 navigator.systemLanguage :OS使用的默认语言 navigator.userAgent :由客户机发送服务器的user-agent头部的值 浏览器的user-agent navigator.userLanguage :OS的自然语言设置 汇总 windows、iphone、android三大平台的主流浏览器解析 Windows操作系统浏览器系列: IE浏览器系列 特征表现:均以 “mozilla/” 开头,”msie x.0;” 中的x表示其版本; 判断方法:粗略判断可以只检索 “msie x.0;” 字符串即可 Windows版Firefox 特征表现:以”mozilla/x.0″开头,包含”windows nt”,”gecko/”和”firefox/” ;… Read More »

TinyPortMapper 实现中继(中转/端口转发)加速

首先建立并进入文件夹(假设你当前目录是  /root  ,那么 tinyPortMapper的目录就是  /root/tinyPortMapper  ): mkdir tinyPortMapper && cd tinyPortMapper wget –N —no–check–certificate “https://github.com/wangyu-/tinyPortMapper/releases/download/20180620.0/tinymapper_binaries.tar.gz” 最新的版本查看 https://github.com/wangyu-/tinyPortMapper   # 解压下载的压缩包 tar –xzf tinymapper_binaries.tar.gz   # 然后你需要判断一下VPS的位数,运行 uname -m 会输出VPS的位数,如果显示 x86_64 则是64位,如果显示 386/i386/686/i686 这四个之一,则是32位。 # x86_64,64位运行: mv tinymapper_amd64 tinymapper # 386/i386/686/i686 四个之一,32位运行: mv tinymapper_x86 tinymapper   最后只需要赋予一下执行权限即可继续看下面的使用方法了。 chmod +x tinymapper 使用方法 完整端口转发命令 nohup ./tinymapper –l 0.0.0.0:2333 –r… Read More »

win10远程桌面怎么保存密码?win10让远程桌面记住密码的方法

win10安装版系统自带远程桌面连接功能非常实用,一般登录远程的时候都会有账号和密码,为了保护系统安全。每次连接远程桌面都要输入密码比较麻烦,方便下次不用输入密码,可让远程桌面连接记住密码,下面小编教你win10远程桌面如何保存密码。 win10系统远程桌面保存密码的方法: 方法一: 1、小娜搜索里输入“凭据管理器”; 2、回车进入控制面板–点击Windows凭据–删除账号相关的凭据即可。 方法二: 1、在win10系统桌面上,开始菜单。右键,运行。 2、输入gpedit.msc,确定。 3、在本地计算机策略-计算机配置-管理模板-系统-凭据分配。找到允许分配保存的凭据用于仅 NTLM 服务器身份验证。右键,编辑。 4、单击启用。点击“将服务器添加到列表”后的“显示”按钮。 5、在值处,输入 TERMSRV/*。再确定。再应用,确定。 6、返回win10桌面上,单击开始菜单,单击Windows附件-远程桌面连接。 7、输入计算机,用户名。再单击保存。这样即可。 win10系统让远程桌面记住密码的设置步骤分享到这里了,此设置帮助用户记着复杂密码,避免发生无法进入远程桌面的情况。

【Windows】Win10家庭版启用组策略gpedit.msc

原文链接:https://blog.csdn.net/u013642500/article/details/80138799 【前言】 大家都认为,Windows 10家庭版中并不包含组策略,其实不然,它是有相关文件的,只是不让你使用而已。那么我们让系统允许你使用就好了。 【操作步骤】 1、首先你需要在桌面上新建一个txt文本文档。然后将以下代码复制到这个新建的txt文本文档中。 @echo off pushd “%~dp0″ dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt for /f %%i in (‘findstr /i . List.txt 2^>nul’) do dism /online /norestart /add-package:”C:\Windows\servicing\Packages\%%i” pause 如图所示: 2、保存,关闭,重命名这个新建文本文档,修改其后缀.txt变成.cmd。 3、右键单击这个“新建文本文档.cmd”,选择以管理员身份运行即可。 4、运行结果如下图所示: 运行完毕,你的电脑就可以使用组策略gpedit.msc了。

虚拟机VirtualBox安装MAC OS 10.12图文教程

VirtualBox虚拟机安装Mac OS 10.12图文教程的准备 1、VirtualBox虚拟机 下载地址:https://www.virtualbox.org/ 特别提醒:推荐官方下载,安装VirtualBox虚拟机的时候请保持默认安装位置(就是直接点下一步,不要自己修改安装位置) 2、macOS 10.12 Sierra Final by TechReviews.vmdk–虚拟镜像文件 下载地址:百度网盘(提取码:zu4w)本来想弄迅雷bt的 太麻烦,先凑合着用吧   VirtualBox虚拟机安装Mac OS 10.12图文教程的具体步骤 首先,新建虚拟机,直接切换到专家模式,然后在名称处输入MacOS10.12,内存建议设置4096MB或者更多,虚拟硬盘选择前面下载的那个macOS 10.12 Sierra Final by TechReviews.vmdk文件,然后点击创建。 创建完毕后,点击设置,处理器数量更改为2 主板选项里面把软驱去掉。 显示选项里面把显存设置为128MB。 点击OK保存设置,接着关闭虚拟机,以管理员身份运行命令提示符(cmd) 如图所示,输入:cd “C:\Program Files\Oracle\VirtualBox\” 进入VirtualBox目录,然后依次输入以下内容 VBoxManage.exe modifyvm “MacOS10.12” –cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff VBoxManage setextradata “MacOS10.12” “VBoxInternal/Devices/efi/0/Config/DmiSystemProduct” “iMac11,3” VBoxManage setextradata “MacOS10.12” “VBoxInternal/Devices/efi/0/Config/DmiSystemVersion” “1.0” VBoxManage setextradata “MacOS10.12” “VBoxInternal/Devices/efi/0/Config/DmiBoardProduct”… Read More »