C#で現在時刻を取得する方法のひとつとして、
C#
1DateTime dateTime = DateTime.Now;
という方法が挙げられますが、
これだとPCの日付は変更できますので、正確な時刻とは言えません。
そこで、同様にして、正確な時刻を取得する方法を知りたいです。
※要するに、時刻を偽装されたくない。
宜しくお願い致します。
本当の目的は何ですか。10数年前によくあったのは「お試し版の期間をきっているが、コンピュータの日付を戻されたくない」でした。NTPという回答もありますが、最近のPCはNTPで時刻調整するようになっているし、そもそも時刻の変更には管理者権限が必要です。NTPも、自前で立てていたり、Windowsならhostsファイルを汚されると役に立ちません。
今の時刻を知りたいだけなら管理者権限も必要ないし、IP アドレスで指定すれば hosts も無関係になります。
単に今の時刻を知りたい、ではなく、<b>コンピュータが持っている時刻を変えられていても</b>、正しい今の時刻が知りたい、という質問だと認識しています。
時刻を知るのに管理者権限いるとは言っていません。時刻を変えるのには管理者権限がいる。だからそうそう変える物ではないのでは?と言っています。
「IPアドレスで指定すれば」は、確かにその通りです。
「お試し版の期間をきっているが、コンピュータの日付を戻されたくない」です。
戻されないようにするのは不可能ですね。<b>コンピューターの時刻に関係なく、また管理者権限も必要なく、正しい時刻を知る方法がある</b>ので、それで判断したらという話です。