我正在尝试更改其中包含端口号的 IP 地址字符串,以便对表格进行排序,例如 IP 字符串:
IP = "120.88.66.99:075"
我可以删除.
's 和:
with:
IP = string.gsub(IP,'%W',"")
这给了我120886699075
,但我想将 only 更改:
为 a.
所以它给了我120886699.075
编辑:
实际上我想要的是不起作用,因为它没有考虑.'s之间的数字数量所以我想要的是一种以给定格式对ip进行排序的方法,因此可以包含原始ip字符串的表排序。
编辑2:
我有这个几乎可以解决这个问题:
function IPToDec(IPs)
local t = {}
local f = "(.-)%."
local l = 1;
local s, e, c = IPs:find(f,1)
while s do
if s ~= 1 or c ~= "" then
table.insert(t,c)
end
l = e+1;
s, e, c = IPs:find(f,l)
end
if l <= #IPs then
c = IPs:sub(l)
table.insert(t,c)
end
if(#t == 4) then
return 16777216*t[1] + 65536*t[2] + 256*t[3] + t[4]
else
return -1
end
end
IP = "120.88.66.99:075"
IP = IPToDec(IP:gsub('%:+'..'%w+',""))
但我必须松开端口才能正确排序,理想情况下我想在排序中包含端口号,因为 ip 可能来自同一来源但不同的计算机。