解决PySNMP无法使用的问题

1.NameError: name ‘SnmpEngine’ is not defined

pysnmp高版本的api路径有改动,from pysnmp.hlapi import * 无法引入需要的模块。解决方案,使用低版本pysnmp(4.4.12)

pip uninstall pysnmp
pip install pysnmp==4.4.12

2.ModuleNotFoundError: No module named ‘pyasn1.compat.octets’

pyasn1版本过高导致的问题。解决方案,使用低版本(0.4.8)

pip uninstall pyasn1
pip install pyasn1==0.4.8

参考资料:

PySNMP官网

PySNMP官网(GitHub)

[翻译] PySNMP教程

Cannot find getCmd in pysnmp.hlapi

SNMP Library for Python(7.1.15)

pysnmp : AttributeError: ‘module’ object has no attribute ‘NotificationOriginator’

WSL2测试snmp

Ubuntu安装snmp服务

解决snmp服务无法开机启动问题
新建 /etc/wsl.conf,文件内容如下:

[boot]
systemd=true

一些常用的OID
系统描述:1.3.6.1.2.1.1.1.0
系统名称:1.3.6.1.2.1.1.5.0
系统运行时间: 1.3.6.1.2.1.1.3.0
CPU利用率: 1.3.6.1.4.1.2021.11.11.0
内存利用率: 1.3.6.1.4.1.2021.4.5.0

使用snmpget测试

snmpget -v 2c -c public localhost 1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.5.0

在Win10上通过WSL2编译LuckFox Pico的Buildroot系统

Win10 LTSC 1809升级到21H2的方法

WSL2的介绍和使用

在 win10 2021 LTSC 上安装配置 wsl2 和 ubuntu

wsl2设置桥接网络或镜像网络,解决服务互通访问的问题

sama5d2 buildroot 添加 net-snmp

解决python和bc命令无法使用问题

sudo apt install python-is-python3 bc

解决Path中存在空格问题
新建 /etc/wsl.conf,文件内容如下:

[interop]
appendWindowsPath=false

【转】Android WebView设置代理及账号密码

转载自:Android WebView设置代理及账号密码


一.背景

很多小伙伴都会遇到公司的app需要通过外网访问公司的内网服务,这个时候后台同学就会配置一个代理服务器,app通过代理服务器访问公司内网。出于安全的考虑,还会对访问代理服务器的请求进行身份验证。

那么Android的WebView如何设置代理,之前查了下网上的资料,大多是通过反射进行设置,但是Google官方已经提供了方便的API供我们使用了。所以,下面就简单介绍下WebView的代理的设置。

二.具体步骤

Android WebView设置代理需要使用ProxyConfig相关类,身份验证需要在WebViewClient的onReceivedHttpAuthRequest里进行。
首先,我们在项目的build.gradle添加相关依赖。

implementation 'androidx.webkit:webkit:1.3.0'

设置代理具体代码如下:

private void init() {
    wv = findViewById(R.id.wv);
    WebSettings webSettings = wv.getSettings();
    webSettings.setSupportZoom(true);
    webSettings.setJavaScriptEnabled(true);
    wv.setWebViewClient(new WebViewClient() {
        @Override
        public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm){
            //身份验证(账号密码)
            handler.proceed("userName", "password");
        }
    });
    setProxy();
    wv.loadUrl("http://www.uc123.com");
}

private void setProxy() {
    if (WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE)) {
        ProxyConfig proxyConfig = new ProxyConfig.Builder()
                .addProxyRule("111.123.321.121:1234")
                .addDirect().build();
        ProxyController.getInstance().setProxyOverride(proxyConfig, new Executor() {
            @Override
            public void execute(Runnable command) {
                //do nothing
            }
        }, new Runnable() {
            @Override
            public void run() {
                Log.w(TAG, "WebView代理改变");
            }
        });
    }
}

【转】安卓webview加载网页实现网页翻译

转载自:安卓webview加载网页实现网页翻译


前言

说下应用场景,最近安卓要加载一些第三方网站进行用户的开放使用,这些第三方网站基本都是全英文的外国网站,于是产品需求希望能对网站进行中文翻译,类似pc浏览器的谷歌翻译网页

使用步骤

1.注入脚本

代码如下(示例):

private void translateWeb() {
        String javaScript = "javascript:function appendScrip() {" +
                "var head= document.getElementsByTagName('head')[0]; var script= document.createElement('script'); script.src= 'https://res.zvo.cn/translate/translate.js'; head.appendChild(script);" +
                "}" +
                "appendScrip();";
        bwvContent.evaluateJavascript(javaScript, new ValueCallback() {
            @Override
            public void onReceiveValue(String s) {
                MyLogUtils.e("javaScript.onReceiveValue:" + s);
                bwvContent.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if (bwvContent==null) {
                            return;
                        }
                        String javaScript2 = "javascript:function startTranslate() {" +
                                "translate.localLanguage='zh-CN';translate.selectLanguageTag.show = false;translate.executeByLocalLanguage();" +
                                "}" +
                                "startTranslate();";
                        bwvContent.evaluateJavascript(javaScript2, new ValueCallback() {
                            @Override
                            public void onReceiveValue(String s) {
                                MyLogUtils.e("javaScript2.onReceiveValue:" + s);
                            }
                        });
                    }
                }, 500);
            }
        });
    }

注意点

1.这里的bwvContent用的是腾讯的webview,在执行注入脚本的时候用的evaluateJavascript方法,原生webview如果没有的话用loadurl也可

2.第一段脚本注入和第二段脚本注入加了个500ms的延时操作,因为实测过程中,连续执行的情况下容易没能顺利进行翻译,所以加了个500ms加高成功率,可自行调试测试

3.该方法的注入,选择时机放在了onProgressChanged回调里,当加载进度progress==100时,进行延时1000ms后执行该方法做自动网页翻译,或者由用户手动点击翻译按钮的时候调用,时机的选择自行调试

使用的注入脚本的相关链接:网页多语言翻译 js v1.2,更新翻译接口 – OSCHINA – 中文开源技术交流社区

【转】aaPanel 7中文翻译,中文语言包

转载自:aaPanel 7中文翻译,中文语言包


目录、后端和前端。在翻译前更新到最新版测试
/www/server/panel/BTPanel/languages/
/www/server/panel/BTPanel/static/vite/lang/

语言配置文件:/www/server/panel/BTPanel/languages/settings.json

测试7.0.10 官方已自带脚本翻译,只需把settings.json加入中文即可

{
    "default": "zh",
    "languages": [
        {
            "name": "zh",
            "google": "zh",
            "title": "\u7b80\u4f53\u4e2d\u6587",
            "cn": "\u7b80\u4f53\u4e2d\u6587"
        },
        {
            "name": "cht",
            "google": "zh-tw",
            "title": "\u7e41\u9ad4\u4e2d\u6587",
            "cn": "\u7e41\u9ad4\u4e2d\u6587"
        },
        {
            "name": "en",
            "google": "en",
            "title": "English",
            "cn": "\u82f1\u8bed"
        }     
    ]
}

在 CentOS7 上用Python安装OpenCV遇到的问题

1.yum install opencv-python

2.把Python3的脚本改成Python2


python3脚本中用到了cv2,查了下需要安装opencv。

用pip3 install opencv-python安装下。

安装过程中报错少skbuild,用pip3 install scikit-build安装下。

安装过程中再次报错,提示cmake版本低,用yum install cmake3 更新下。