<script type="text/javascript">
function getClientPcName() {
try {
var net = new ActiveXObject("WScript.Network");
return net.ComputerName;
} catch (e) { return "Unknown"; }
}
function getClientIp() {
try {
var ctl = new ActiveXObject("rcbdyctl.Setting"); // 需特定控制項註冊
return ctl.GetIPAddress;
} catch (e) { return "Unknown"; }
}
</script>
注意:放在 html-template 目錄,而非 bin-debug,編譯時會自動複製。
<fx:Script>
<![CDATA[
import mx.controls.Alert;
protected function init():void {
var pcName:String = ExternalInterface.call("getClientPcName");
var ip:String = ExternalInterface.call("getClientIp");
Alert.show("PC: " + pcName + "\nIP: " + ip);
}
]]>
</fx:Script>
<s:Application creationComplete="init()" ...> ... </s:Application>
ExternalInterface.call("jsFunction", arg1, arg2...):同步呼叫 JS 函式,取得回傳值ExternalInterface.addCallback("asFunction", asHandler):暴露 AS 函式給 JS 呼叫<object>/<embed> 標籤加 id 與 allowScriptAccess="always"| 需求 | 方案 |
|---|---|
| 客戶端 IP | 伺服端讀取 X-Forwarded-For / RemoteAddr,透過 API 回傳給前端 |
| 裝置識別 | Cookie / LocalStorage + 指紋庫 (FingerprintJS) 生成持久 ID |
| 主機名稱 | 無法在瀏覽器沙箱獲取 (安全限制),如需請改原生應用 (Electron/Tauri/桌面版) |
此技術屬於 IE 時代遺物,僅供維護舊專案參考。新專案請採用標準 Web 技術棧 (HTML5/JS/TypeScript + 後端 API),確保跨平台、安全、可維護。