No More Codes
2022年4月25日 星期一
[Mikortik] 封鎖一大堆blacklist
/ip firewall address-list add list=blacklist address=xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx
設定 raw:
/ip firewall raw add chain=prerouting action=drop src-address-list=blacklist
匯出 address list:
/ip firewall address-list export
目前的封鎖清單: (烏克蘭SpaceshipNetworks持續不斷, 持續封鎖)
/ip firewall address-list
add address=20.33.0.0-20.128.255.255 comment="Microsoft Azure" list=blacklist
add address=5.0.0.0/8 comment="Ukraine SpaceshipNetworks" list=blacklist
add address=133.0.0.0/8 comment="Japan Network Information Center" list=blacklist
add address=136.144.16.0-136.144.127.255 comment="RIPE Network Coordination Centre" list=blacklist
add address=45.126.65.0/24 comment=" IRT-TELE-ASIA" list=blacklist
add address=141.98.10.0/23 comment="Paulius Vancugovas" list=blacklist
add address=193.56.29.0/24 comment=" Web Hosted Group Ltd" list=blacklist
add address=114.80.0.0/12 comment="CHINANET SHANGHAI PROVINCE NETWORK" list=blacklist
add address=85.202.168.0/23 comment="Serverion BV" list=blacklist
add address=5.34.204.0/22 comment="Spaceshipnetworks LTD" list=blacklist
add address=60.166.0.0-60.175.255.255 comment=" CHINANET anhui province network" list=blacklist
add address=185.36.81.0/24 comment="UAB Host Baltic" list=blacklist
add address=185.222.56.0/23 comment=" RootLayer Web Services LTD" list=blacklist
add address=37.0.8.0/22 comment="Serverion BV" list=blacklist
2022年4月23日 星期六
樹莓派安裝執行 .NET Core 程式
參考影片: https://www.youtube.com/watch?v=WDlZ3f2xHcc
先安裝 visual studio code:
sudo apt install code
建立公用目錄:
sudo mkdir /usr/share/dotnet
先看微軟網頁 https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0, 找到下載 ARM32 (或64) 版本的連結, 然後用 wget 下載:
sudo wget https://download.visualstudio.microsoft.com/download/pr/e41a177d-9f0b-4afe-97a4-53587cd89d00/c2c897aa6442d49c1d2d86abb23c20b2/dotnet-sdk-6.0.202-linux-arm.tar.gz
或是5.0版:
wget https://download.visualstudio.microsoft.com/download/pr/17588888-bd97-41e6-a1ef-9f1da6b8bdf6/ab16a7b0b82297f76abc793b5d187952/dotnet-sdk-5.0.407-linux-arm.tar.gz
解開至公用目錄:
sudo tar zxvf dotnet-sdk-6.0.202-linux-arm.tar.gz -C /usr/share/dotnet
或是5.0版:
sudo tar zxvf dotnet-sdk-5.0.407-linux-arm.tar.gz -C /usr/share/dotnet
編輯 ~/.profile, 在最後增加 export 設定:
export PATH=$PATH:/usr/share/dotnet
export DOTNET_ROOT=/usr/share/dotnet
重新登入讓 profile 生效
建立 .net 專案
cd ~
mkdir hello
建立 console 專案:
cd hello
dotnet new console
這時會在目錄下產生 .csproj 與 Program.cs 等專案檔
編譯:
dotnet build
執行:
./bin/Debug/net6.0/hello
dotnet支援的專案類型:
dotnet new -l
2022年4月22日 星期五
[Rpi3] 3.5吋觸控LCD驅動
最近東西都漲價了, 拿出以前的 Rpi3, 買了一款 Rpi3 用的觸控LCD: https://www.jmaker.com.tw/products/product194
指令:
git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/
sudo ./LCD35-show
然後重新開機
ESP-IDF 使用 ESP32-S2 的設定/編譯/燒錄
有個 HMI OS 的構想, 買了一片 ESP32-S2-Kaluga-1 Kit 來用, 這片是 ESP32-S2, ES_IDF 預設是 ESP32, 如果沒有設定 target, 編譯後無法上傳. 紀錄一下設定/編譯/燒錄的指令:
進入 example project 目錄後 (例如 C:\Espressif\frameworks\esp-idf-v4.4.1\examples\get-started\blink) :
設定: idf.py set-target ESP32-S2
編譯: idf.py build
燒錄的指令 idf.py -p COMx flash
2022年3月30日 星期三
自建 DDNS 轉址
由於 HiNet 只提供一個固定 IP, 只能給一個路由器使用, 如果另一個路由器用 PPPOE 取得浮動 IP, 可透過這個固定 IP 下的網站來進行轉址. 本例中, 浮動 IP 端使用樹莓派當伺服器, 使用 python3 環境, 固定 IP 端為一般 PC, 安裝 xampp (apache+php+mysql).
PC端在 htdocs 下建立一個 smartcenter 目錄, 放3個 php 檔
set_ip.php: 設定 ddns ip
<?php $host = htmlspecialchars($_GET["HOST"]); $ip = htmlspecialchars($_GET["IP"]); $filename = "ip.".$host; $file = fopen($filename,"w"); fwrite($file,$ip); fclose($file); ?> |
get_ip:php: 回傳 ddns ip
<?php $host = htmlspecialchars($_GET["HOST"]); $filename = "ip.".$host; if (file_exists($filename)) { $file = fopen($filename,"r"); $ip = fread($file,filesize($filename)); fclose($file); } else { $ip="0"; } echo '{"IP":"'.$ip.'"}'; ?> |
index.php: 轉址
<?php $filename = "ip.smartcenter"; if (file_exists($filename)) { $file = fopen($filename,"r"); $ip = fread($file,filesize($filename)); fclose($file); } else { $ip="0"; }
header('Location: http://'.$ip); ?> |
樹莓派的 set_ddns_ip.py 程式: 先取得外部 ip, 呼叫 set_ip.php 進行設定, 再呼叫 get_ip.php 檢查結果:
#!python3 import requests r =requests.get('https://api.myip.com/') print(r.status_code) print(r.text)
#print(r.json()) my_ip=r.json()['ip'] print('my_ip="'+my_ip+'"')
ddns_server='http://自己的網址' host='smartcenter' args = {'HOST':host,'IP':my_ip} r = requests.get(ddns_server+'/smartcenter/set_ip.php',params=args) #print(r.status_code) #print(r.text)
args = {'HOST':host} r = requests.get(ddns_server+'/smartcenter/get_ip.php',params=args) #print(r.status_code) registered_ip=r.json()['IP'] print('registered_ip="'+registered_ip+'"')
if(registered_ip!=my_ip): print("Bad") else: print("OK"); |
建立一個 /set_ddns_ip.sh
然後只要設定 crontab 每分鐘自動更新即可:
# m h dom mon dow command * * * * * /home/pi/set_ddns_ip.sh |
瀏覽器只要使用原先的網址, 例如 http://自己的網址/smartcenter, 即可自動轉址