說明如何在 Windows 操作系統中, 利用 batch 檔案取得電腦連外 IP, 並且設定 Stunnel 後與 Fossil SCM server 配合啟動.
以下使用 Spring 2017 1GB 版本的隨身程式系統, 修改 start.bat 如下後, 可以自動取得電腦連外 IPv4 IP 位址, 並將設定資料寫入 stunnel.conf 後啟動.
REM tiny2017 主要針對初學 Python3 與 C 學員所建立 REM 近端使用 fossil 管理資料版本, 並且定時轉為 git 格式後上傳到 github @echo off REM 設定 y 硬碟代號與 data 目錄對應 set Disk=y subst %Disk%: "data" REM 設定 leo 相關對應 Home 位置 set HomePath=%Disk%:\home set HomeDrive=%Disk%:\home set Home=%Disk%:\home REM 將系統 Python 程式的 io 設為 utf-8 set PYTHONIOENCODING="utf-8" REM 將後續的指令執行, 以 %Disk% 為主 %Disk%: REM 設定 PYTHONPATH set PYTHONPATH=%Disk%:\python-3.5.3-embed-amd64 REM 設定 Leo 所用的編輯器 set LEO_EDITOR=%Disk%:\wscite\SciTE.exe REM for fossil https 連線設定 set HTTPS=on REM 指令搜尋路徑設定 set path1=%PATH%;%Disk%:;%Disk%:\python-3.5.3-embed-amd64;%Disk%:\git\bin;%Disk%:\stunnel\bin;%Disk%:\sqlite-tools;%Disk%:\python-3.5.3-embed-amd64\Scripts;%Disk%:\portablegit\bin; set path2=c:\Windows\Microsoft.NET\Framework\v3.5;%Disk%:\python-3.5.3-embed-amd64\Lib\site-packages; set path3="C:\Program Files (x86)\Google\Chrome\Application" path=%path%;%path1%;%path2%;%path3% start /MIN %Disk%:\wscite\SciTE.exe start /MIN cmd.exe start /MIN cmd.exe start /MIN cmd.exe REM 啟動 Leo 編輯器 REM %Disk%:\Miniconda3\python.exe %Disk%:\apps\launchLeo.py REM 啟動 stunnel start /MIN fossil.exe server -P 127.0.0.1:8080 %Disk%:\tmp\fossil_repo\vcp.fossil REM 取得電腦 IP, 然後設定 %Disk%:/stunnel/config/stunnel.conf for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do set NetworkIP=%%a REM echo Network IP: %NetworkIP% REM Saved in %Disk%:\stunnel\config\stunnel.conf @echo off REM 建立 stunnel.conf @echo [https] > %Disk%:\stunnel\config\stunnel.conf REM 附加資料 @echo accept = %NetworkIP%:443 >> %Disk%:\stunnel\config\stunnel.conf @echo connect = 127.0.0.1:8080 >> %Disk%:\stunnel\config\stunnel.conf @echo TIMEOUTclose = 0 >> %Disk%:\stunnel\config\stunnel.conf @echo cert = %Disk%:\stunnel\config\localhost.crt >> %Disk%:\stunnel\config\stunnel.conf @echo key = %Disk%:\stunnel\config\localhost.key >> %Disk%:\stunnel\config\stunnel.conf REM 啟動 stunnel start /MIN stunnel.exe REM 以 chrome 連線到 https://%NetworkIP%:443 chrome https://%NetworkIP% Exit