使用luasocket
local socket = require "socket.core" local server_ip = { "time-nw.nist.gov", "time-a.nist.gov", "time-b.nist.gov", "time.nist.gov", "time-c.nist.gov", "time-d.nist.gov", } function nstol(str) assert(str and #str == 4) local t = {str:byte(1,-1)} local n = 0 for k = 1, #t do n= n*256 + t[k] end return n end -- get time from a ip address, use tcp protocl function gettime(ip) print(‘connect ‘, ip) local tcp = socket.tcp() tcp:settimeout(10) tcp:connect(ip, 37) success, time = pcall(nstol, tcp:receive(4)) tcp:close() return success and time or nil end function nettime() for _, ip in pairs(server_ip) do time = gettime(ip) if time then --print(os.date("%c", time-2208988800)) print(time-2208988800) --return time-2208988800 end end end nettime()
时间: 2024-10-10 08:22:51