1. 程式人生 > >C# NTP 時鐘同步,獲取指定IP地址的系統時間及錯誤問題解決。

C# NTP 時鐘同步,獲取指定IP地址的系統時間及錯誤問題解決。

為了實現內網間機子的時鐘同步,需要用到NTP協議的,所以做了一下這方面工作。

實現獲取指定IP系統時間的程式碼在網上有現成的:

呼叫的方法如下:
var client = new SNTPTimeClient("127.0.0.1", "123");
client.Connect();
DateTime getEd = client.ReceiveTimestamp;//獲取指定IP的系統時間
var st = new SystemTime
{
    wDay = (ushort)getEd.Day,
    wDayOfWeek = (ushort)getEd.DayOfWeek,
    wHour = (ushort)getEd.Hour,
    wMiliseconds = (ushort)getEd.Millisecond,
    wMinute = (ushort)getEd.Minute,
    wMonth = (ushort)getEd.Month,
    wSecond = (ushort)getEd.Second,
    wYear = (ushort)getEd.Year
};
SNTPTimeClient.SetLocalTime(ref st);//設定本地時間

注:

1、NTP基於UDP報文進行傳輸,使用的UDP埠號為123。

2、指定的IP可以是公網的IP,下面是一些網路上提供的時間伺服器IP地址。

210.72.145.44
203.117.180.36
131.107.1.10
64.236.96.53
130.149.17.21
66.92.68.246
18.145.0.30
137.92.140.80
133.100.9.2
128.118.46.3
210.72.145.44(中國國家授時中心伺服器IP地址)
202.120.2.101 (上海交通大學網路中心NTP伺服器地址)

3、也可以內網區域網的,但是我測試的時候,出現了以下幾個錯誤(win7下的操作):

1、遠端主機強迫關閉了一個現有的連線。


解決辦法:執行 -- services.msc  -- 找到Windows Time並開啟。你也可以設定他的屬性為自動的。

2、由於連線方在一段時間後沒有正確答覆或連線的主機沒有反應,連線嘗試失敗。


解決辦法:

1、有可能是指定IP的主機的NTP服務沒有開啟,執行 -- gpedit.msc  -- 計算機配置 -- 管理模版 -- 系統 -- windows時間服務 --時間提供程式,在右側找到“啟用 Windows NTP 伺服器”雙擊選擇--“已啟用”-- 確定,可以參照下面給出下載連結裡的PDF檔案。

2、有可能是指定IP的主機的Windows Time服務沒有開啟。解決方法如上面。

3、有可能是指定IP的主機的防火牆阻止了123埠,控制面板--防火牆--入站規則--右側一欄點選新建規則--埠--UDP--特定本地埠:123-- 允許連結--全選--隨便取個名字。確定開啟。

下載內容(大部分本文已給出):

1、SNTP時鐘同步,獲取指定IP主機系統時間並設定本地時間的程式原始碼。
2、客戶端呼叫方法。
3、winXP及win7下開啟NTP服務方法.pdf
4、NTP協議格式(中文).doc

相關推薦

C# NTP 時鐘同步,獲取指定IP地址系統時間錯誤問題解決

為了實現內網間機子的時鐘同步,需要用到NTP協議的,所以做了一下這方面工作。 實現獲取指定IP系統時間的程式碼在網上有現成的: 呼叫的方法如下: var client = new SNTPTimeClient("127.0.0.1", "123"); client.

獲取指定時間斷系統時間

package com.vodone.subwayzero.util;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Greg

通過 ARP 協議獲取區域網內指定 IP 地址的機器的 MAC 地址

unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,WinSock;

Linux下編程獲取本地IP地址的常見方法

print 拓撲 htons 技術 ams 輸出 per arpa res 轉載於:http://blog.csdn.net/k346k346/article/details/48231933   在進行linux網絡編程時,經常用到本機IP地址。本文羅列一下常見方法,以備

獲取請求主機IP地址,如果通過代理進來,則透過防火墻獲取真實IP地址

cas return ++ strip dex except servlet desc 請求 /** * 獲取請求主機IP地址,如果通過代理進來,則透過防火墻獲取真實IP地址; * @Title: getIpAddress * @Descr

ntp時鐘同步

sbin ntpdate bsp centos6 usr col 服務 ntpd null   服務器時間的一致性,很關鍵的。 11. 基於ntp服務的形式 [root@server0 ~]# yum -y install chrony //NTP客戶端 ce

IP地址的分類範圍詳解:A、B、C、D、E五類是如何劃分的?

網絡地址分類 IP地址分類 IP地址劃分 IP地址類型 IP地址範圍 IP地址的分類及範圍詳解:A、B、C、D、E五類是如何劃分的?最近在考證,有一項內容是網絡IP地址劃分的題目,一直從事IT的猛然發現回答這個問題時產生了懷疑,於是習慣百度了一下,發現網上廣泛流傳的有關IP地址劃分的文章居

Delphi獲取公網IP地址函數

fin .get style phi del 獲取公網ip final end and uses IdHTTP; function GetPublicIP: string; var strIP, URL: string; iStart, iEnd: Integer; My

內網配置NTP時鐘同步

cgroup org node 不可用 域名 con odi sbin eba 環境介紹Node1作為NTP主節點,其他所有節點從node1進行時間同步,節點 IpNode1 192.168.20.101Node2 192.168.20.102 所有節點安裝n

Linux下程式設計獲取本地IP地址的常見方法

轉載於:http://blog.csdn.net/k346k346/article/details/48231933   在進行linux網路程式設計時,經常用到本機IP地址。本文羅列一下常見方法,以備不時之需。 獲取本機IP地址,是一個相當靈活的操作,原因是網路地址的設定非常靈活而且都是允

linux debian下配置ntp時鐘同步

叢集設定時鐘同步ntp。 對於hadoop叢集設定時鐘同步就是一個十分重要的事情,下面我介紹一下,debain設定時鐘同步的方法。網上關於RedHat和centos系統的設定方法都很多,我就不介紹了。 同步模式:所有的slaves同步master的時間。 我是參考下面網址:

Java獲取使用者IP地址的工具類

package com.gcloud.common; import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.NetworkInterface; import java.n

多級反向代理java獲取真實IP地址

public static String getIpAddress(HttpServletRequest request){ String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.l

linux中ntp時鐘同步

1.查詢是否安裝ntp,若沒有安裝的話使用yum進行安裝 rpm -q ntp 或者 rpm -qa | grep ntp yum –y install ntp 4.1.6時鐘同步配置 系統版本為centos6.3時: 1.在選定的ntp伺服器主機上編輯配置檔案/etc/ntp.con

js獲取瀏覽器ip地址

   /**      * 獲取ip地址      */     function getUserIP(onNewIP) { //  onNewIp - your listener

Nginx反向代理 Laravel獲取真實IP地址(PHP)

代理 pro $1 通過 找到 但是 有一個 忘記 rust 使用VUE前後端分離開發 後端使用Laravel 想要獲取到用戶的真實IP地址 因為分離開發不同源跨域問題 所以只能進行前端Nginx反向代理 location /api { rewrite

Linux下使用iptables禁止指定IP地址的網路連線

在Linux下,使用iptables來維護IP規則表。要封停或者是解封IP,其實就是在IP規則表新增規則。 要禁止指定IP地址的網路連線,可以使用以下兩種方法來快速實現。 1.禁止特定IP的連線 要禁止一個IP,使用下面這條命令: iptables -I INPUT -

java獲取使用者ip地址,處理0:0:0:0:0:0:0:1

/** * 獲得使用者遠端地址 */ public static String getRemoteAddr(HttpServletRequest request){ /*String remoteAddr = request.getHeader("X-Real-IP"); if (is

微信隱蔽獲取好友ip地址的過程

1.生成連線地址 第一步不知道的話 去這裡看 2.生成的連線 傳送到微信檔案傳輸助手 3.微信內開啟連線地址 繼續轉發到檔案傳輸助手 會出現一張卡片訊息 4.開啟Cheat Engine 在開啟微信程序 5.數值型別選擇字串 搜尋需要改的標題 點選首次搜尋後出現如下圖

java核心程式設計------獲取主機ip地址

package addresstest; import java.awt.BorderLayout; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.Action