vb。net怎么获取网络上的时间 坐等

vb。net怎么获取网络上的时间 坐等,第1张

         Dim obj,OBJStatus As Object,url As String,GetText As String,i As Integer

        Dim Retrieval

        url=">

NTP概念简介 

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

java实现:

import javaioInputStream;

import javanetSocket;

public class TimeUtil {

    public static final int DEFAULT_PORT = 37;//NTP服务器端口

    public static final String DEFAULT_HOST = "time-nwnistgov";//NTP服务器地址

    private TimeUtil() {

    };

    public static long currentTimeMillis(Boolean sync) {

        if (sync != null && syncbooleanValue() != true)

            return SystemcurrentTimeMillis();

        try {

            return syncCurrentTime();

        } catch (Exception e) {

            return SystemcurrentTimeMillis();

        }

    }

    public static long syncCurrentTime()  throws Exception {

        // The time protocol sets the epoch at 1900,

        // the java Date class at 1970 This number

        // converts between them

        long differenceBetweenEpochs = 2208988800L;

        // If you'd rather not use the magic number uncomment

        // the following section which calculates it directly

        /

          TimeZone gmt = TimeZonegetTimeZone("GMT"); Calendar epoch1900 =

          CalendargetInstance(gmt); epoch1900set(1900, 01, 01, 00, 00, 00);

          long epoch1900ms = epoch1900getTime()getTime(); Calendar epoch1970

          = CalendargetInstance(gmt); epoch1970set(1970, 01, 01, 00, 00, 00);

          long epoch1970ms = epoch1970getTime()getTime();

          

          long differenceInMS = epoch1970ms - epoch1900ms; long

          differenceBetweenEpochs = differenceInMS/1000;

         /

        InputStream raw = null;

        try {

            Socket theSocket = new Socket(DEFAULT_HOST, DEFAULT_PORT);

            raw = theSocketgetInputStream();

            long secondsSince1900 = 0;

            for (int i = 0; i < 4; i++) {

                secondsSince1900 = (secondsSince1900 << 8) | rawread();

            }

            if (raw != null)

                rawclose();

            long secondsSince1970 = secondsSince1900 - differenceBetweenEpochs;

            long msSince1970 = secondsSince1970  1000;

            return msSince1970;

        } catch (Exception e) {

            throw new Exception(e);

        }

    }

}

中国大概能用的NTP时间服务器 

     server 133100118 prefer 

     server 2107214544 

     server 20311718036 //程序中所用的 

     server 131107110 

     server timeasiaapplecom 

     server 642369653 

     server 1301491721 

     server 669268246 

     server >

①使用路由器的IP地址(路由器背面有提示),在电脑的浏览器地址栏中输入按回车(Enter键)登陆一下。

②在登录框内输入用户名和密码(路由器的背面也有提示),通常都是admin。

③然后,在左侧的菜单栏中找到系统工具→时间设置。

默认时间是不正确的,这样往往导致一些规则失效。

④设置一下时区,点选右边的下拉箭头▼,找到和当前时区相适应的选项。

⑤然后,分别在 优先使用NTP服务器1和2中填上有效的IP地址→获取GMT时间。

比如:2021202101。

⑥正在获取(保持联网),如果出错,再获取一次。

⑦可以使用ping命令校对IP地址是否有效。

开始→运行→输入:CMD 点击确定(或按回车键),打开命令提示符窗口。输入ping +空格+网址(ping 2021202101),看是否通?不通,网站问题,再换一个有效的IP地址。

请求超时为无效IP地址(或者网站在维护)

有效返回四组数据才是有效IP地址。

下列代码不用任何控件就能从国家授时中心网页获取时间获得网络时间。

Function NetTime(Optional url As String) As String '返回包括时间和日期的字符串

Dim obj, OBJStatus, Retrieval

Dim GetText As String

Dim i As Long

Dim myDate As Date

Set Retrieval = CreateObject("MicrosoftXML>

网上有不少通过timetianqicom网站获取时间的方案,都是过时代码,对代码不太了解的,不太容易修改,近期我用到这个东西,动手修改了一下,主要就是通过网页代码数据获取时间。当前版本的内容是类似:var timestamp = "155749644870";这样,获取到后边的155749644870即可。下面内容保存到bat文件里执行即可。

@echo off

title 获取网络时间

cd /d "%tmp%"

(

echo With CreateObject("MicrosoftXML>

以上就是关于vb。net怎么获取网络上的时间 坐等全部的内容,包括:vb。net怎么获取网络上的时间 坐等、java获取网络当前时间、怎么让路由器自动获取时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10083656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存