May 2016 Archives

LINE BOT API

user-pic
Vote 0 Votes

LINE 於四月初開始提供 BOT API 試用, 可登入 LINE Business Center 申請
API Reference
需準備一台有 HTTPS 服務的 Web Server, 用來接收 Callback,
不能用自簽的 SSL, 否則 VERIFY 會出現 Could not connect using SSL. 可去申請 Let's Encrypt - Free SSL/TLS Certificates
當有人送訊息到 BOT 帳號, 系統會送 POST message 到指定的 Callback URL (由後台設定),
觀察 Source IP 都來自 203.104.146.0/24, 所以 Server 要 Allow 這一段
訊息是 JSON 格式, 大概像這樣(有經過 formating)

PHP 的回話範例, 將前三行換成自己的即可
Channel ID、Channel Secret、MID 可以在 LINE Developers 後台找到

基本貼圖「饅頭人&詹姆士」 STKPKGID:1, STKVER:100 的 API 參數編號 STKID 依序如下

第1列 STKID 4,13,2,10,17,401,402,5,15,1
第2列 STKID 3,16,403,404,405,406,11,7,21,14
第3列 STKID 8,9,12,6,100,101,102,103,104,105
第4列 STKID 106,107,108,109,110,111,112,113,114,115
第5列 STKID 116,117,118,407,408,409,410,411,412,413
第6列 STKID 414,415,416,417,418,419,420,421,422,423
第7列 STKID 424,425,426,427,428,429,430,119,120,121
第8列 STKID 122,123,124,125,126,127,128,129,130,131
第9列 STKID 132,133,134,135,136,137,138,139

基本貼圖「熊大&兔兔」 STKPKGID:2,STKVER:100 的 API 參數編號 STKID 依序如下

第1列 STKID 140,141,142,143,501,502,503,144,145,146
第2列 STKID 147,504,505,506,507,148,149,150,151,152
第3列 STKID 153,154,155,19,508,509,510,511,512,513
第4列 STKID 18,38,514,515,516,156,158,157,517,518
第5列 STKID 519,520,159,521,522,523,524,525,22,34
第6列 STKID 32,23,526,527,39,33,24,25,27,29
第7列 STKID 30,31,26,160,161,162,163,164,165,166
第8列 STKID 167,168,169,170,171,172,173,174,175,176
第9列 STKID 177,178,179,37,36,46,35,28,20,42
第10列 STKID 41,47,43,45,40,44

基本貼圖「櫻桃可可」 STKPKGID:3,STKVER:100 的 API 參數編號 STKID 依序如下

第1列 STKID 180,181,182,183,184,185,186,187,188,189
第2列 STKID 190,191,192,193,194,195,196,197,198,199
第3列 STKID 200,201,202,203,204,205,206,207,208,209
第4列 STKID 210,211,212,213,214,215,216,217,218,219
第5列 STKID 220,221,222,223,224,225,226,227,228,229
第6列 STKID 230,231,232,233,234,235,236,237,238,239
第7列 STKID 240,241,242,243,244,245,246,247,248,249
第8列 STKID 250,251,252,253,254,255,256,257,258,259

基本貼圖「表情圖片」 STKPKGID:4,STKVER:100 的 API 參數編號 STKID 依序如下

第1列 STKID 263,264,265,266,267,268,601,602,603,604
第2列 STKID 605,606,260,261,262,607,269,270,271,272
第3列 STKID 273,608,274,275,276,277,278,609,610,282
第4列 STKID 283,291,279,280,281,284,285,611,286,612
第5列 STKID 288,289,613,614,615,290,616,617,292,293
第6列 STKID 294,295,296,618,619,287,297,298,299,300
第7列 STKID 301,302,620,303,304,305,306,307,621,622
第8列 STKID 623,624,625,629,627,628,626,630,631,632

XML formating

user-pic
Vote 0 Votes

| xmllint --format - # need libxml2 package
| xmlstarlet fo # need xmlstarlet
Make it more readable.

JSON formating

user-pic
Vote 0 Votes

| python -m json.tool # need python package
| jq . # need jq package
Make it more readable.

nginx+PHP

user-pic
Vote 0 Votes

nginx (發音 engine) 近幾年因為性能卓越, 市佔已愈來愈高, 僅次於 Apache, IIS, 排第三
官方有提供 Prebuilt Packages, 安裝很方便
Create /etc/yum.repos.d/nginx.repo

yum -y install nginx

PHP 在 configure 需加 --enable-fpm 參數
設定檔用預設的即可 cp sapi/fpm/php-fpm.conf /usr/local/etc/php-fpm.conf
執行 php-fpm 會 Listen 9000 Port
nginx 設定檔 /etc/nginx/conf.d/default.conf
這是 HTTP + HTTPS + PHP 的典型設定, DocumentRoot 在 /var/www/html
若 SSL 憑證是用 Let's Encrypt, ssl_certificate 這個參數要把這兩個檔合併 cert.pem, chain.pem
cat cert.pem chain.pem > cert_chain.pem
若只有 cert.pem 的內容, 試過一般瀏覽器可以正常, 但是 curl, wget, links, lynx, w3m 等 CLI 工具都會出現錯誤
curl: (60) Peer certificate cannot be authenticated with known CA certificates
wget: ERROR: The certificate of 'yourhost.com' is not trusted.
links: SSL error
lynx: SSL error:unable to get local issuer certificate
w3m: unable to get local issuer certificate
ERROR: The certificate of 'yourhost.com' hasn't got a known issuer.

ref. Install NGINX

openssl s_client

user-pic
Vote 0 Votes

openssl s_client 可用來查看 HTTPS Server 的憑證
openssl s_client -connect helloworld.letsencrypt.org:443
or
openssl s_client -host helloworld.letsencrypt.org -port 443

cURL for Windows
裝完後把 C:\Program Files\cURL\bin 下面
curl-ca-bundle.crt
curl.exe
這兩個檔 Copy 到 C:\Windows 目錄即可
註: 有 curl-ca-bundle.crt 這個檔才不會出現這樣的錯誤
curl: (60) SSL certificate problem: unable to get local issuer certificate

ASNIP.net

user-pic
Vote 0 Votes

ASNIP.net 是 asnumbers.net 的新域名 (連到 asnumbers.net 會轉向到 asnip.net)
除了可以查 ASN 的資訊外
加了兩項新功能
ASN to IPs, 查詢某 ASN 的所有網段
IP to ASN, 查詢某 IP 對應的 ASN

Netflix's Speedtest

user-pic
Vote 0 Votes

fast.comNetflix 提供的測速網站, 很簡單的頁面, 只有測下載, 畢竟他們所提供的服務都是用下載
用了四種瀏覽器去測, 都很正常, 數據也很接近
fast.com 是放在 Akamai, 為什麼不放自己的 CDN Netflix Open Connect 上面呢?
放自家的 CDN 測試結果應該是比較符合實際狀況

Speedtest HTML5 Beta

user-pic
Vote 0 Votes

測速網站 Speedtest HTML5 版本在 Beta 測試中, Flash 遲早要廢掉的
beta.speedtest.net
試了四種瀏覽器, 只有 Google Chrome 正常, 測出來的數據還滿準的
Firefox 測完下載後停住, 上傳測試不動
Opera 測出的數據不準, 不到一半, 感覺 Loading 很重
IE 11 無法測, 出現 LATENCY TEST ERROR

Server Side sshd_config
ClientAliveInterval 60
ClientAliveCountMax 3

or

Client Side ssh_config
ServerAliveInterval 60

ssh user@host bash -s -- < local-script.sh

You can add arguments if you need.
ssh user@host bash -s -- < local-script.sh argv1

OpenVPN for Android

user-pic
Vote 0 Votes

OpenVPN 目前並沒有內建在 Android 系統的 VPN 選項, 必需安裝 OpenVPN Connect 才能使用 OpenVPN
需要把這三個檔放到手機內
1. ca.crt, 檔案要與 Server 端一致, 如何建立自簽 CA 請參考 RouterBoard OpenVPN
2. 建立好的 ovpn 檔案
3. 帳密檔 auth.txt, 一行帳號, 一行密碼
ovpn 檔案內容
client
dev tun
proto tcp
remote 100.100.100.100 443
auth-user-pass auth.txt
ca ca.crt
redirect-gateway def1

再從 OpenVPN Connect 右上角按選單, Import, Import Profile from SD card,
選擇剛剛放入的 ovpn 檔, 即可進行 VPN 連線

Google 已官方提供 OTA Images for Nexus Devices
爾後等不到 OTA 就可以先抓來用, 也不用等論壇流出版了

.* is greedy match
.*? is non-greedy match

PHP example:
$str="abc123abc456abc";
preg_match("/abc(.*)abc/",$str,$match);
echo $match[1]; // result is 123abc456
preg_match("/abc(.*?)abc/",$str,$match);
echo $match[1]; // result is 123

sshpass

user-pic
Vote 0 Votes

一般是建 Key 來達成 ssh 免密碼, 若不想建 Key, 可以用 sshpass
sshpass 可以在 ssh 時自動將密碼帶入
密碼可以用檔案(-f filename)或參數(-p password)或變數SSHPASS(-e)帶入
e.g.
sshpass -f pass_file ssh user@somewhere.com
sshpass -p password ssh user@somewhere.com
export SSHPASS=password
sshpass -e user@somewhere.com
當然也可以直接執行所連線主機的 command
sshpass -e user@somewhere.com cat /etc/hosts

About this Archive

This page is an archive of entries from May 2016 listed from newest to oldest.

April 2016 is the previous archive.

June 2016 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Monthly Archives