03 6 月 2020

家用路由必备hosts文件配置

家里的路由只要是openwrt系列的,都可以通过设置hosts来实现屏蔽广告或者苹果系统的升级等功能。十分有用,而且效率高没有任何资源消耗。

修改方式

vi /etc/hosts

因此写一份配置进行记录,也会保持更新。

#20200603更新

#IOS OTA 屏蔽苹果系统升级
127.0.0.1 mesu.apple.com
127.0.0.1 appldnld.apple.com
127.0.0.1 xp.apple.com
127.0.0.1 gdmf.apple.com
127.0.0.1 ipsw.me
127.0.0.1 updates-http.cdn-apple.com
#屏蔽乐播投屏电视端广告
127.0.0.1 adeng.hpplay.cn 
127.0.0.1 ad.hpplay.cn
#tcl-tv update 屏蔽tcl电视系统升级
127.0.0.1 launcher.TCLoudfamily.com
127.0.0.1 update.cedock.com
#屏蔽小米盒子或者电视系列广告
127.0.0.1 gvod.aiseejapp.atianqi.com
127.0.0.1 stat.pandora.xiaomi.com
127.0.0.1 upgrade.mishop.pandora.xiaomi.com
127.0.0.1 logonext.tv.kuyun.com
127.0.0.1 config.kuyun.com
127.0.0.1 mishop.pandora.xiaomi.com
127.0.0.1 dvb.pandora.xiaomi.com
127.0.0.1 api.ad.xiaomi.com
127.0.0.1 de.pandora.xiaomi.com
127.0.0.1 data.mistat.xiaomi.com
127.0.0.1 jellyfish.pandora.xiaomi.com
127.0.0.1 gallery.pandora.xiaomi.com
127.0.0.1 o2o.api.xiaomi.com
127.0.0.1 bss.pandora.xiaomi.com
02 6 月 2020

openwr热插拔脚本-wan变化触发

最近遇到了一些小问题,我的tp703n(已经刷了openwrt)在单位usb连接手机自动共享网络到wifi。这种功能确实很好用,既能给手机充电也能直接共享网络(非手机热点,热点多设备非常不稳定)。

但是在用某酸酸插件时,会出现当我拔下手机出去有事一段时间后,回来该插件就会出问题,需要手动重启插件解决。这个体验太差了,所以想到直接写个简单热插拔的脚本监听wan接口,当wan接口发生变化时,就重启该插件。

这个思路源自openwrt的著名插件ddns的设计,ddns应该是全世界最出名最常用的插件了,非常好用。ddns,主要用于将域名动态绑定到路由器的ip上。该插件有个智能功能,就是监听wan接口事件,一旦出现断线重启,就会重启插件,实现更新ip到dns的功能。

具体实操很简单。

#在/etc/hotplug.d/iface目录新建一个脚本99-ssr

vi /etc/hotplug.d/iface/99-ssr

#写入以下内容即可

#!/bin/bash
if [ $ACTION=ifup -a $INTERFACE=wan ]; then
  /etc/init.d/shadowsocksr restart
fi

解释下/etc/hotplug.d/iface 这个目录是openwrt监听wan或者lan接口的脚本目录,而且目录里脚本的执行顺序按照数字的顺序来的。所以上面99开头的脚本就是希望最后时间里去执行该脚本。

至于脚本内容那就很简单了,就是对于wan网络接口出现up上线的时候,执行目标插件的重启。

31 5 月 2020

openwrt的插件冲突-koolproxyR与ssrplus+

去广告主流插件有两个

一.koolproxy

优点:1.对http与https都有效

缺点:1.占用资源很多,规则复杂

2.设备需要安装证书,操作复制。

二.adbyby plus+广告屏蔽大师

优点:1.轻量级,占用资源少

缺点:1.确定只对http有效,对https无效。而目前大量广告都是基于后者。

留学插件有也有两个主流

一、ssrplus+

优点:1.自动切换节点功能更好用,采用的wget的方式判断节点是否异常。

缺点:1.与插件koolproxy不兼容,二者只能选一个。

二、passwall

优点:1.兼容性很好,目前没发现什么问题。

缺点:1.自动切换节点功能不太准确,采用ping方式检测。会导致经常自动高频切换节点。

22 5 月 2020

leetcode第四题

原题https://leetcode.com/problems/median-of-two-sorted-arrays/

内容为两个排序好的非空列表,求这两个表之间的中位数。难点在对时间复杂度有要求。

class Solution:
    def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
        lis=nums1+nums2
        lis=sorted(lis)
        return lis[int(len(lis)/2)] if (len(lis)%2)!=0 else (lis[int(len(lis)/2)-1]+lis[int(len(lis)/2)])/2
        
21 5 月 2020

leetcode第三题

原题https://leetcode.com/problems/longest-substring-without-repeating-characters/submissions/

经典题 最长子窜长度

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        if s=="":
            return 0
        
        max1 = 1
        for i in range(0,len(s)-1):
            b=[]
            b.append(s[i])
            for j in range(i+1,len(s)) :
            
                if s[j] not in b:
                    b.append(s[j])
                else:
                    max1=(len(b) if len(b)>max1 else max1)#遇到重复立马打断循环 计数
                    break
                #print(b)
            max1=(len(b) if len(b)>max1 else max1)#没有遇到任何重复 计数
            
        
        
        return max1
        
        
21 5 月 2020

leetcode第一题解法1

原题https://leetcode.com/problems/two-sum/submissions/

题目内容 寻找列表两个数之和为指定数字的位置

 

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        b=[]
        for i,val in enumerate(nums):
            tmp=nums[i+1:]
            if (target-val) in tmp:
                b.append(i)
                b.append(i+1+tmp.index(target-val))
        return b