lua获取网络当前时间戳

使用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

lua获取网络当前时间戳的相关文章

ngx lua获取时间戳的几种方式

原创自由de单车 最后发布于2017-02-14 14:58:43 阅读数 18218 收藏 在ngx_lua里,获取时间相关信息的方式大概有4种(见下面代码): print(string.format("%s, %s, %s, %s", ngx.time(), os.time(), os.clock(), ngx.now()))ngx.exit(200) -- 以上代码会输出:1486971340, 1486971340, 209.77, 1486971340.422 可见,通过os

Unity 获取网络北京时间

最近在做的单机,由于需要获得网络时间,搜了很多Unity获取网络服务器的代码,大多数不是接口已经失效就是代码过于繁琐.(心中满满的吐槽)直接放代码 获取网页内容后是 0=跟一个15位时间戳.需要自己转换成时间格式.

Android中获取网络数据时的分页加载

//此实在Fragment中实现的,黄色部分为自动加载,红色部分是需要注意的和手动加载,    蓝色部分是睡眠时间,自我感觉不用写  ,还有就是手动加载时,不知道为什么进去后显示的就是最后一行,求大神指教 public class Fragment1 extends Fragment{               //加载的第几页        private int index = 0;            private List<News> news=new ArrayList<

Java获取网络IP

Java获取获取网络IP,浅尝辄止咯- 1 import java.net.InetAddress; 2 import java.net.UnknownHostException; 3 4 /** 5 * 获取网络IP 6 * 1.获取本地的IP地址 7 * 2.获取本机的服务器名称 8 * 3.获取远程服务器的主机IP地址 9 * 4.获取远程服务器的所有主机IP 10 * 11 * 网络编程: 12 * InetAddress 是用来封装IP地址相关信息的类 13 * getLocalHos

获取网络上的北京时间,如果大于设定的过期时间就...

设置一个过期时间 ,定义时间变量dd,dd获取网络上的北京时间,如果获取失败,就获取计算机当前时间,再比对dd与过期时间,如果dd大于过期时间,就执行... // 比对固定时间,看是否超时. private void CompareTime() { try { dd = GetBeijingTime(); i = DateTime.Compare(dd, Convert.ToDateTime("2013-1-1 00:00:00")); if (i < 0) { dd = Dat

Android 通过广播获取网络状态

Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验. 本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请对比WIFI连接作出调整. 首先写一个WifiStateBroadcast类继承BroadcastReceiver,重写onRecevie方法,获取网络连接状态管理器,通过管理器拿到对应的网络信息,得到网络状态,判断网络状态,作出相应的业务逻辑. 1 public class WifiStateBroadCast e

Swift - 异步获取网络数据封装类

使用NSURLConnection.sendAsynchronousRequest()可以采用异步获取的方式取得数据.下面通过对数据获取类进行封装,演示如何进行数据请求与接收. 1,HttpController.swift (数据获取封装类,结果处理协议) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import UIKit //自定义http协议 protocol HttpProto

cocos2dx获取网络时间(一)

今天在公司的cocos2dx项目中遇到一个需求,需要获取网络时间和系统时间对比,目的是防止用户更改系统时间进行某些非法操作 . 那么cocos2dx怎么来获取网络时间呢 ?我整理的思路如下: (1)由一个web api可以返回当前的网络时间 (2)cocos2dx通过http请求该api获取数据到本地 (3)cocos2dx解析数据得到当前的网络时间 一:首先就需要一个web接口来提供网络时间的数据,我在这里自己搭建一个WCF服务返回需要的数据. 新建WCF服务应用程序 , 项目命名为NetTi

Android网络编程之获取网络上的XML

Android网络编程之获取网络上的XML 请尊重他人的劳动成果,转载请注明出处:Android网络编程之获取网络上的XML 为要获取网络上的XML所以需要服务器端提供的支持. 一.创建服务器端: 服务器端项目结构: 服务器端运行效果图: 第一步:创建业务所需的JavaBean package com.jph.server.model; import java.util.Date; /** * 新闻实体类 * @author jph * Date:2014.09.26 */ public cla