亚洲城误乐城ca88网站从服务器上收获网络时间的三种办法

从服务器上获取网络时间的三种艺术

  1. 用Net Time \\server
  2. NT平台用Win32 API函数:NetRemoteTOD
  3. 用文件的创始时间
    在服务器的共享文件夹下创立新文件,取新文件的创导时间。
  4. 用HTTP协议头,有服务器的岁月
  5. 运用Telnet,取再次来到值
    Telnet Server 13
  6. 亚洲城误乐城ca88网站,动用数据库
    a) Oracle: select sysdate from dual
    b) Informix: select current() from systables
    c) Sql Server: select getdate()
  7. 使用DCOM Server
    创造一个拿到服务器时间的DCOM Server,在客户端调用

活动与Internet时间服务器同步

  Windows默认的二个Internet时间服务器:time.windows.com和time.nist.gov大家自然平时用,反正在自我这里是常事时间一起失利,大概因为服务器是海外的,同步的机器又多,服务器太忙了吗。
  
  下边这个IP是中国国家授时核心的Internet时间服务器地址,用它来代替time.windows.com和time.nist.gov服务器,同步时间快。同步成功的机遇大大扩大。

210.72.145.44
我们不妨尝试。

神州国家授时主题:
http://www.ntsc.ac.cn/


取指定IP或服务器时间
//方法一:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls;
type
TTODInfo = record
ElapsedTime: Integer; {number of seconds since 00:00:00 January 1,
1970}
Milliseconds: Integer; {number of milliseconds since last system
reset}
Hours: Integer; {current hour (0-23)}
Minutes: Integer; {current minute (0-59)}
Seconds: Integer; {current second (0-59)}
Hunds: Integer; {current hundredth of a second (0-99)}
TimeZone: Integer; {time against GMT in minutes}
{west of Greenwich gives positive, east negative values}
{value of -1 means undefined time zone}
Interval: Integer; {clock tick interval in ten-thousandth of a second
(0.0001 s)}
Day: Integer; {day of the month (1-31)}
Month: Integer; {month of the year (1-12)}
Year: Integer; {year}
Weekday: Integer; {day of the week (0-6) 0 = Sunday, 1 = Monday etc.}
end;
PTODInfo = ^TTODInfo;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
netapi32 = ‘netapi32.dll’;
function NetApiBufferFree(Buffer: Pointer): Integer; stdcall;
function NetRemoteTOD(UNCServerName: PWideChar; Info: Pointer): Integer;
stdcall;
function ServerTime(const UNCServer: string; var Stamp: TDateTime):
Integer;
implementation
{$R *.dfm}
function NetApiBufferFree; external netapi32 name ‘NetApiBufferFree’;
function NetRemoteTOD; external netapi32 name ‘NetRemoteTOD’;
function ServerTime(const UNCServer: string; var Stamp: TDateTime):
Integer;
var
ServerName: PWideChar;
tod: PTODInfo;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
begin
GetMem(ServerName, (Length(UNCServer) + 1) * SizeOf(WideChar));
try
ServerName := StringToWideChar(UNCServer, ServerName, Length(UNCServer)

  • 1);
    Result := NetRemoteTOD(ServerName, @tod);
    if Result = 0 then
    begin
    try
    Year := tod^.Year;
    Month := tod^.Month;
    Day := tod^.Day;
    Hour := tod^.Hours;
    Min := tod^.Minutes;
    Sec := tod^.Seconds;
    MSec := tod^.Hunds * 10;
    if tod^.TimeZone = -1 then {undefined timezone}
    Stamp := EncodeDate(Year, Month, Day) +
    EncodeTime(Hour, Min, Sec, MSec)
    else
    Stamp := EncodeDate(Year, Month, Day) +
    EncodeTime(Hour, Min, Sec, MSec) – (tod^.TimeZone / 1440);
    finally
    NetApiBufferFree(tod);
    end;
    end;
    finally
    FreeMem(ServerName);
    end;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
    t: TDateTime;
    begin
    ServerTime(‘192.168.192.187’, t);
    label1.Caption := DateTimeToStr(t);
    end;
    end.

    type
    TIME_OF_DAY_INFO = record //api 傳回的資料格式
    tod_elapsedt : DWord;
    tod_msecs : DWord;
    tod_hours : DWord;
    tod_mins : DWord;
    tod_secs : DWord;
    tod_hunds : DWord;
    tod_timezone : LongInt;
    tod_tinterval : DWord;
    tod_day : DWord;
    tod_month : DWord;
    tod_year : DWord;
    tod_weekday : DWord;
    end;
    PTIME_OF_DAY_INFO = ^TIME_OF_DAY_INFO;

LPBYTE = ^Byte;
NET_API_STATUS = DWord;
//..
function NetRemoteTOD(HostName: PWideChar; Buffer: LPBYTE):
NET_API_STATUS;
stdcall; external ‘netapi32.dll’ name ‘NetRemoteTOD’; //宣告在
netapi32.dll 下的 NetRemoteTOD api
//..
function GetRemoteTOD(Host: WideString; TODInfo: LPBYTE): Boolean;
begin
Result := (NetRemoteTOD(pWideChar(Host), TODInfo) = 0);
end;

function GetRemoteDateTime(Host: WideString): TDateTime;
var
TOD : PTIME_OF_DAY_INFO;
begin
if NetRemoteTOD(pWideChar(Host), @TOD) = 0 then
Result := EncodeDate(TOD^.tod_year, TOD^.tod_month, TOD^.tod_day)

EncodeTime(TOD^.tod_hours, TOD^.tod_mins, TOD^.tod_secs,
TOD^.tod_hunds * 10) – TOD^.tod_timezone / 60 /
24
else
Result := 0;
end;
//
procedure TForm1.Button2Click(Sender: TObject);
var
t: TDatetime;
begin
t:=GetRemoteDateTime(‘\\192.168.6.101’); // 主機前要加 \\, 而且要先
trust 過
showmessage(formatdatetime(‘yyyy/mm/dd hh:nn:ss’,t));
end;
方法二:
假設您的伺服器上有裝MS SQL:

function GetServerDate: TDateTime;
var
aqry: TQuery;
begin
aqry := TQuery.Create(nil);
try
aqry.DatabaseName := ‘DB’;
aqry.Close;
aqry.SQL.Clear;
aqry.SQL.Add(‘Select GETDATE() DBDate’);
aqry.Open;
Result := aqry.FieldByName(‘DBDate’).AsDateTime;
finally
FreeAndNil(aqry);
end;
end;
假設您的伺服器上有裝Oracle:

function GetServerDate: TDateTime;
var
aqry: TQuery;
begin
aqry := TQuery.Create(nil);
try
aqry.DatabaseName := ‘DB’;
aqry.Close;
aqry.SQL.Clear;
aqry.SQL.Add(‘Select SYSDATE DBDate From DUAL’);
aqry.Open;
Result := aqry.FieldByName(‘DBDate’).AsDateTime;
finally
FreeAndNil(aqry);
end;
end;

参考
http://hi.baidu.com/lobtao/item/843aaf0bd08b44803d42e278


北斗时间频率技术有限公司是一家专注于岁月频率技术工程选用的立异型专业化技术公司。致力于北斗(Compass)/GPS/GLONASS/Galileo导航卫星时间频率技术、时间频率精密测量控制技能、IEEE1588网络迷你时间共同(PTP)技术、时间频率统一联合技术,以及高精度时间频率信号暴发、保持、无缝(无损)切换与分配技术的钻研与产品开发,并致力于提供专业化高端时间频率系统缓解方案和技巧服务。

信用社具备一支工程经验丰硕、专业技术精湛的时光频率专家和中青年科技人才团队,曾到场了国家北斗导航卫星地面监测站时频分系统研制建设职责、我国独立自主星载原子钟的研制任务、我国某部队气象卫星地面监测站时频分系统建设、我国某部队侦察卫星地面站时频分系统建设、总装备部“高精密时间距离测量技术”和“高精密频率测量控制技能”专项等国家级重要工程。公司所有时间频率技术世界的多项国家发明专利,并成功使用在四个产品多元中,广泛应用于本地、车载、船载、机载等不同条件。专业的时频技术水平和工程控制能力在国内处于超越水平。大家的业内技巧集团期待着与您合作,为你提供一级的时刻频率系统缓解方案与技能劳务。

北斗时间频率技术有限公司劳动用户包括总参、总装、海、海军、二炮等国防重点单位和中国航天科技公司、中国航天科工集团、中国飞行试验探讨院、中国航空工业总公司、中电公司集团、中科院迪拜天文台、中科院国家授时中心、中科院杜阿拉测地所、物数所、国家气象局、海洋局、国家计量院、国家电网、中国移动、中国联通、要旨电视机台等国家首要部委集团等。应用领域涵及航天航空、国防军事、电力系统、科研院所、计量与校准、广播电视、电信、金融、交通等。产品质地可靠、技术目标先进,深得用户好评。

北斗时间频率技术有限集团研发的时间频率产品早已包含机架式、台式、便携式、手持式、卡式等多种产品类型。首要产品体系有GPS授时系统、北斗
授时系统、GPS时码发生器(GPS时码器)、北斗时码暴发器(北斗时码器)、GPS授时卡(GPS时统卡/时码卡)、北斗授时卡、PCI/CPCI时码卡、IRIG-B码编码解码卡、NTP网络时间服务器、IEEE1588
(PTP)精密时钟、GPS北斗同步时钟、GPS铷原子钟(GPS铷原子频标)、北斗铷原子钟(北斗铷原子频标)、频率分配放大器、频标无缝切换器、脉冲分配器、IRIG-B时码分配器、高精度时间间隔计数器、高精度频率计、比相仪等。

北斗时间频率技术有限集团:www.xbd-time.com