我试图为我的小应用程序“OpenSpeedTest-服务器”做一个快照--这是一个简单的网络性能评估工具。它在Windows、Mac和Linux (DEB)上运行良好。当我在Snap中导出相同的内容时,应用程序无法获得客户端设备ip地址。
我试着“禁闭”:“经典”,和插头,网络观察等,但没有任何效果。
我添加了“@davidwinter/电子锻造制造商- snap”手动DevDependency,并将其导出为snap实际工作。
唯一的问题是应用程序无法获得设备ip地址.

我的电子锻造package.json
{
"name": "OpenSpeedTest-Server",
"productName": "OpenSpeedTest-Server",
"version": "2.1.0",
"description": "Network Speed Test Server - by OpenSpeedTest",
"main": "src/index.js",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
},
"keywords": [],
"author": {
"name": "OpenSpeedTest",
"email": "support@openspeedtest.com"
},
"license": "MIT",
"config": {
"confinement": "devmode",
"forge": {
"packagerConfig": {
"icon": "src/icon.png"
},
"makers": [
{
"name": "@davidwinter/electron-forge-maker-snap",
"config": {
"name": "OpenSpeedTest_Server",
"categories": [
"Utility"
]
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
},
"dependencies": {
"@davidwinter/electron-forge-maker-snap": "^2.0.4",
"cors": "^2.8.5",
"electron-squirrel-startup": "^1.0.0",
"express": "^4.17.1",
"internal-ip": "^6.2.0",
"tcp-port-used": "^1.0.2"
},
"devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.57",
"@electron-forge/maker-deb": "^6.0.0-beta.57",
"@electron-forge/maker-rpm": "^6.0.0-beta.57",
"@electron-forge/maker-squirrel": "^6.0.0-beta.57",
"@electron-forge/maker-zip": "^6.0.0-beta.57",
"electron": "13.1.2"
}
}发布于 2021-07-19 04:47:36
{
“name”: “@davidwinter/electron-forge-maker-snap”,
“config”: {
“name”: “OpenSpeedTest_Server”,
“categories”: [
“Utility”
],
“stagePackages”: [
“default”,
“iproute2”
]
}
},我的devDep。
},
"dependencies": {
"cors": "^2.8.5",
"electron-squirrel-startup": "^1.0.0",
"express": "^4.17.1",
"internal-ip": "^6.2.0",
"tcp-port-used": "^1.0.2"
},内部IP负责获取ip地址。
https://www.npmjs.com/package/internal-ip模块返回由默认网关确定的面向internet接口的地址.由于任何原因无法确定地址时,将返回未定义的地址。该模块依赖于操作系统工具。在Linux和Android上,ip命令必须可用,这取决于发行版,在默认情况下可能不会安装。它通常由iproute2包提供。浏览器不支持.v4.sync()和.v6.sync(),只返回未定义的内容。
,因此我们需要在stagePackages中添加iproute2,以使其在snap.上工作。
https://stackoverflow.com/questions/68427276
复制相似问题