跳到主要內容

文章

Win10 網路共用修改IP:192.168.137.1

 如果有設定網路共用,則會重設IP為192.168.137.1,記錄一下更改此預設值的方法。 開啟「regedit」,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters 修改ScopeAddress、ScopeAddressBackup的值,如下圖即可完成

B電腦使用A電腦上網

 目前的況狀是這樣,A電腦可以上外網,有兩張網卡。 但是網路孔只有一個,被A電腦使用,在沒有Hub的情形下,B電腦沒有辦法上網 另外就是我必須讓A電腦與B電腦網路對接,以便程式測試。 因為A電腦還有多一個網卡,所以直接與B電腦相接。 A電腦是Win10作業系統,在網路連線中可以看見有兩個乙太網路,其中乙太網路是可以上網的;乙太網路2是接到B電腦 於乙太網路按滑鼠右鍵選點「內容」-> 「共用」,將「允許其他網路使用者透過這台電腦…」的選項勾選起來。 並且在「家用網路連線」的下拉選單中選擇「乙太網路2」,按下確定之後,會有一個警告視窗告訴我們乙太網路2會被重設為192.168.137.1 完成之後,乙太網路2的IP會改為192.168.137.1,所以B電腦也會取得或設定為192.168.137.x,這樣B電腦就可以上網了。

SQLite匯入Excel資料

先整理Excel的資料,讓每個欄位都能對應表格的欄位,不用帶入欄位名 例如表格的結構如下: create table test_t(a integer primary key, b nvarchar(10), c nvarchar(10)) 將Excel另存為CSV格式,CSV資料如下(檔名為test.csv): 1,小明,台南 2,王五,台北 3,李四,台東 因為內容有中文,所以利用文書處理軟體,如Notepad++,將格式轉換成UTF-8碼(無BOM檔首) 因為SQLite預設是以「|」當作分隔符號,而csv是以「,」當作分隔符號,所以要先更改SQLite的設定值 sqlite> .separator  ' , ' 利用指令.import將資料匯入資料庫中,語法:.import <檔名> <TABLE NAME> sqlite> .import test.csv test_t 這樣就完成資料的匯入了。

利用Node.js建立Https協定服務

因為有些外掛模組需要有https才能啟用,所以需要建立一個https Node.js。 https預設是443 port,傳輸過程中會加密,所以需要有CA憑證,而CA有Signed CA和Self-Signed CA, 前者憑證可被Root CA認證,適用於商業性質,但是通常需要付費,瀏覽器會標示綠標,也就是安全的網站; 後者不需Root CA認證,以自行發行憑證的方式進行,但是會被瀏覽器視為不安全的網站。 我因為只需要開發中有https的服務,所以採取簡單的方式,方式如下: 1、建立certificate檔案 產生RSA加密的私鑰,-out代表輸出私鑰的檔名,1024代表私鑰長度,如需更安全可以設定2048。 # openssl genrsa -out privatekey.pem 1024 建立憑證要求,-new為表示要產生CSR(certificate signing request),-key為讀取的私鑰,後面為私鑰檔,無指定則會產生一把新的私鑰。 用產生的私鑰產生一把用來生成證書的鑰匙。 # openssl req -new -key privatekey.pem -out csrreq.csr X.509是一種公開金鑰(PKI) 的電信通訊標準,所以我們利用X.509產生一個CA簽證的憑證。 -days:生效的期限,預設為30天 -in:CSR憑證檔名 -signkey:私鑰檔 -out:產生的憑證檔名 # openssl x509 -req -days 9999 -in csrreq.csr -signkey privatekey.pem -out ca.pem 2、編輯JS如以下的檔案 const fs = require('fs'); const https = require('https'); const express = require('express'); const app = express(); //讀取憑證及金鑰 const prikey = fs.readFileSync('privatekey.pem', 'utf8'); const cert = fs.readFileSyn

chrome for android 開發人員遠端除錯

為了測試無密碼登入的功能,試寫了一個簡易的網頁,採用WebAuthn技術。 在桌機上的Chrome測試時,成功出現使用USB安全金鑰登入的畫面,可是我沒有金鑰,只好以手機來測試,也成功出現使用金鑰或指紋來登入的畫面。 但是我想用console.log來輸出一些object等訊息,但是桌機的Chrome因為無硬體金鑰,所以無法繼續,故也秀不出之後的console log;而用手機的Chrome是叫不出開發人員選項,所以也無秀不出console log。 之後找到一篇遠程調試 Android 設備的文章,可以利用桌機的Chrome來遠端對Android的Chrome進行除錯,故記錄我的步驟,方便使用。 手機Chrome版本:81、桌機Chrome版本:80 1、啟用紅米手機的開發人員模式,並將「USB調試」功能打開 2、將手機與桌機用USB線串在一起,並開啟手機的Chrome 3、開啟桌機Chrome的開發人員模式(F12),點選 Remote devices 4、在新增的頁籤「Remote devices」點選下圖紅色圈選處的連結,開啟新頁面 5、確定「Discover USB devices」有勾選;有成功連上手機就會出現下列圈選的機碼 6、offline代表未認證,打開手機(我的是紅米)畫面出現需要確認的畫面,確認它。 7、手機確認後就offline就會變成online,並且看見手機上Chrome 8、直接在手機上操作或在「Open tab with url」輸入url,如上圖我已開啟ngrok.io的測試網頁,按下「inspect」,就可以遠端對手機Chrome進行除錯。

測試WebAuthn出現錯誤: Cannot read property 'create' of undefined

這幾天在測試WebAuthn,參考網路上的範例試作時,產生憑證卻出現下列的錯誤: 原先以為是程式或瀏覽器版本的問題,但是檢查後一直無法解決這個問題,最後在一個論壇的一段回答中找到答案,也許是我沒有去詳閱原文的技術文件,所以我一直找不到原因。 原因是我沒有使用https或localhost來執行,使用ngrok臨時建立一個https後再測試,這次就成功了,記錄一下。

ngrok快速讓外網連本機服務

每次在測試Web網站或Webhook時都需要設定防火牆讓外網可以連線到內部的服務,但是有時候只想測試一下外網連線的狀態時,可用ngrok來快速達到此一目標。 Ngrok 是一個反向代理,可以在公共的端點和本地服務之間建立一個安全的通道,啟動或停用都非常快速,而且無需設定防火牆。 先由Ngrok下載程式到自己的電腦上。Ngrok官網: https://ngrok.com/ 例如我的Service是http://localhost:7777,首先開啟CMD並進入Ngrok的目錄內 D:/> cd ngrok 執行下列指令讓Port 7777可以穿透: D:/ngrok> ngrok http 7777 ngrok提供了一組隨機的url,並且啟用了http及https,所以外網測試時只能填上提供的url就可以了。 ngrok也支援TLS、TCP Tunnel的方式,網站上還提供了免費與付費會員服務,可以取得更多的服務