sockets - 在 Lua 中获取 IP 地址

标签 sockets networking lua coronasdk

我尝试从我的设备获取本地 IP(在 Corona Lua 中编程)

直到现在我这样做:

local myip = socket.dns.toip(socket.dns.gethostname()) 

但这仅适用于模拟器
local client = socket.connect( "www.google.com", 80 )
local ip, port = client:getsockname() 

但这仅在我有 Internet 连接时才有效

我怎么能在没有互联网的情况下在我的 Wifi 中获得我的本地 IP

谢谢
克里斯

最佳答案

您正在寻找的接口(interface)的 ip 可以根据您尝试与之交谈的 IP 地址而改变。下面的代码使用google的IP选择一个接口(interface)并返回IP地址。
使用 LUA/luasocket 对我有用,但我还没有在电晕中尝试过。

require "socket"

local s = socket.udp()
s:setpeername("74.125.115.104",80)
local ip, _ = s:getsockname()
print(ip)

编辑:

在这种情况下,您不需要互联网,因为您实际上并没有连接到任何东西或发送任何数据包。但是,您需要相关接口(interface)才能真正拥有 IP。

关于sockets - 在 Lua 中获取 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046291/

相关文章:

java - 套接字上并发读写的线程安全

node.js - 在NodeJS端使用SocketIo读取数据?

c++ - 无明显原因的 WSA 10049 错误

c++ - asio 的多套接字架构

当没有网络连接时,iOS 应用程序在启动时崩溃

java - 私钥解密对称 key ,但对称 key 联网时给出不同的结果?

java - 如何将 Java 网络服务器添加到 OSGI 包中

visual-studio-2012 - 如何在 VS C++ 项目中使用 luasocket,从 LuaForWindows 找到 luasocket.h 或为 Lua 5.2 构建 LuaSocket

function - 在lua中调用未定义的函数时收到任何通知

c - 如何用C语言进行lua表操作?