获取目标主机时间(C#)

lupct 2010-05-19 12:11:05
如题,知道目标主机IP,有系统账户名和密码,怎么实现获取改主机系统时间。
PS:我是新手,没遇到过这样的情况,请高手赐教!
...全文
449 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
lupct 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 wuyi8808 的回复:]
引用 14 楼 lupct 的回复:
不好用的,你自己试试。。

我试过了,DateTime.Now() 获取的就是客户端的系统时间


我试过了,DateTime.Now **注意:没有括号**,取得的是服务器时间。

实践是检验真理的唯一标准。
[/Quote]

谢谢纠正 NOW 是属性不是方法。。。呵呵
lupct 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wuyq11 的回复:]
http://topic.csdn.net/u/20100221/10/7252be8b-dbee-47ab-922a-d55f31db12e7.html
[/Quote]

谢谢了! 研究研究去!
wuyi8808 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lupct 的回复:]
不好用的,你自己试试。。

我试过了,DateTime.Now() 获取的就是客户端的系统时间
[/Quote]

我试过了,DateTime.Now **注意:没有括号**,取得的是服务器时间。

实践是检验真理的唯一标准。
yujuanmin 2010-05-19
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20081211/19/860d1e90-1ae1-4fc7-b3d3-11338a6cba68.html
wuyi8808 2010-05-19
  • 打赏
  • 举报
回复
实践证明:DateTime.Now 取得的是服务器时间:

http://www.skyiv.com/info/index.aspx

<html>
<head>
<title>Skyiv Studio</title>
</head>
<body>
ServerTime: [<%=DateTime.Now%>]<br />
<script language="JavaScript">
<!--
document.write("ClientTime: [" + new Date() +"]<br />")
//-->
</script>
ClientIP: [<%=Request.UserHostAddress%>]<br />
</body>
</html>


gomoku 2010-05-19
  • 打赏
  • 举报
回复
运行net time \\server,并分析结果。
或者用NetRemoteTOD API (连接有个例子)
lupct 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wuyi8808 的回复:]
引用 9 楼 lupct 的回复:

我要的是 远程计算机的 系统时间


见8楼和11楼。
[/Quote]

见12楼
lupct 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wuyi8808 的回复:]
引用 7 楼 lupct 的回复:

引用 4 楼 wuyi8808 的回复:
HTML code
<%=System.DateTime.Now.ToString()%>

同2楼


这个HTML代码放在远程主机的 wwwroot 文件夹下,取名 GetTime.aspx,然后 http://远程主机IP/GetTime.aspx 取得的就是远程主机的时间。
[/Quote]

不好用的,你自己试试。。

我试过了,DateTime.Now() 获取的就是客户端的系统时间
wuyi8808 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lupct 的回复:]

我要的是 远程计算机的 系统时间
[/Quote]

见8楼和11楼。
lupct 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wuyi8808 的回复:]
引用 5 楼 lupct 的回复:

引用 2 楼 wuyi8808 的回复:
SQL code
select getdate()

这个获得的是 本地数据库的时间。。

我要的是 获取已知目标主机IP 账户 密码 的远程主机系统时间


连接远程主机的数据库,就是数据库所在的远程主机的系统时间。
[/Quote]

这种方式 我已经实现了
我现在想要实现另一种方式,就是知道局域网中一台主机的IP,windows系统账户及密码,来获取该主机的系统时间
wuyi8808 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lupct 的回复:]

引用 4 楼 wuyi8808 的回复:
HTML code
<%=System.DateTime.Now.ToString()%>

同2楼
[/Quote]

这个HTML代码放在远程主机的 wwwroot 文件夹下,取名 GetTime.aspx,然后 http://远程主机IP/GetTime.aspx 取得的就是远程主机的时间。
  • 打赏
  • 举报
回复
只有重数据库下手了。 。 保存的时候 , 时间那类插入 getdate()
lupct 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hwj383 的回复:]
来自:http://hi.baidu.com/ysdonet/blog/item/88fe5e0250ecbd0a4bfb5133.html

在C#里面,时间相关的对象都在DataTime 命名空间下,不过发现一般都是只能获取系统时间的,无法对系统时间进行修改,从网上查了很长时间资料才从http://www.csharphelp.com/找到解决方法,它是利用API来实现对系统时间的修改。 ……
[/Quote]
设置本地系统时间 我有码。。
我要的是 远程计算机的 系统时间
wuyi8808 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lupct 的回复:]

引用 2 楼 wuyi8808 的回复:
SQL code
select getdate()

这个获得的是 本地数据库的时间。。

我要的是 获取已知目标主机IP 账户 密码 的远程主机系统时间
[/Quote]

连接远程主机的数据库,就是数据库所在的远程主机的系统时间。
lupct 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyi8808 的回复:]
HTML code
<%=System.DateTime.Now.ToString()%>
[/Quote]
同2楼
「已注销」 2010-05-19
  • 打赏
  • 举报
回复
来自:http://hi.baidu.com/ysdonet/blog/item/88fe5e0250ecbd0a4bfb5133.html

在C#里面,时间相关的对象都在DataTime 命名空间下,不过发现一般都是只能获取系统时间的,无法对系统时间进行修改,从网上查了很长时间资料才从http://www.csharphelp.com/找到解决方法,它是利用API来实现对系统时间的修改。
该API在C#是这样声名的:

using System.Runtime.InteropServices;

//imports SetLocalTime function from kernel32.dll
[DllImport("kernel32.dll", SetLastError=true)]
public static extern int SetLocalTime (ref SystemTime lpSystemTime);

//struct for date/time apis
public struct SystemTime
{
public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds;
}

// And then set up a structure with the required properties and call the api from code:

SystemTime systNew = new SystemTime();

// 设置属性
systNew.wDay = 1;
systNew.wMonth = 1;
systNew.wYear = 2004;
systNew.wHour = 9;
systNew.wMinute = 0;
systNew.wSecond = 0;

// 调用API,更新系统时间
SetLocalTime(ref systNew);



在通用的.net framework使用上面的方法就可以修改系统时间了,不过如果和我一样在.net compact framework环境下编程WinCE API都放在coredll.dll里面,而不是kernel32.dll、gdi32.dll、user32.dll里面,所以应该在API声明中修改一下动态库名
lupct 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyi8808 的回复:]
SQL code
select getdate()
[/Quote]
这个获得的是 本地数据库的时间。。

我要的是 获取已知目标主机IP 账户 密码 的远程主机系统时间
wuyi8808 2010-05-19
  • 打赏
  • 举报
回复
<%=System.DateTime.Now.ToString()%>
lupct 2010-05-19
  • 打赏
  • 举报
回复
再顶,要沉了~~
加载更多回复(4)

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧