コード例 #1
0
def ntp_logging():
    '''
    Compute a timestamp using NIST Internet Time Servers as an additional 
    level of assurance for database. This function is called by search 
    function or can be called via XML or JSON remote procedure calls.
    
    Example for XMLRPC:
    >>> from xmlrpclib import ServerProxy
    >>> s = ServerProxy('http://ml-lab.bioinformatics.org/init/plugin_notalogger/call/xmlrpc')
    >>> s.ntp_logging()
    '''
    ntp_pool = ['asia.pool.ntp.org',
                'europe.pool.ntp.org',
                'oceania.pool.ntp.org',
                'north-america.pool.ntp.org',
                'south-america.pool.ntp.org',
                'africa.pool.ntp.org']
    client = ntplib.NTPClient()
    server = random.choice(ntp_pool)
    response = client.request(server, version=3)
    try:
        results = ['Network time server: ' + server,
                   'Offset : %f' % response.offset,
                   'Stratum : %s (%d)' % (ntplib.stratum_to_text(response.stratum),
                                          response.stratum),
                   'Precision : %d' % response.precision,
                   'Root delay : %f ' % response.root_delay,
                   'Root dispersion : %f' % response.root_dispersion,
                   'Delay : %f' % response.delay,
                   'Leap indicator : %s (%d)' % (ntplib.leap_to_text(response.leap),
                                                 response.leap),
                   'Poll : %d' % response.poll,
                   'Mode : %s (%d)' % (ntplib.mode_to_text(response.mode),
                                       response.mode),
                   'Reference clock identifier : ' + \
                                        ntplib.ref_id_to_text(response.ref_id,
                                        response.stratum),
                   'Original timestamp : ' + time.ctime(response.orig_time),
                   'Receive timestamp : ' + time.ctime(response.recv_time),
                   'Transmit timestamp : ' + time.ctime(response.tx_time),
                   'Destination timestamp : ' + time.ctime(response.dest_time)]
        results = ' | '.join(results)
    except:
        results = 'Failure to connect to network time server or there is \
        an internet error. Please try again later.'
    notalogger_db.logger.insert(notarizecode='',
                                name='',
                                pidentifier='',
                                email='',
                                usage='NTP pool server time check',
                                comments=results,
                                datetimeserver=str(server),
                                seconds_since_epoch=str(time.time()))
    notalogger_db.commit()
コード例 #2
0
ファイル: cynote.py プロジェクト: mauriceling/cynote2
def ntp_stamp():
    if session.username == None: 
        redirect(URL(r=request, f='../account/log_in'))
    form = FORM(
            TABLE(
                TR('Network Time Servers: ',
                   SELECT('asia.pool.ntp.org',
                          'europe.pool.ntp.org',
                          'oceania.pool.ntp.org',
                          'north-america.pool.ntp.org',
                          'south-america.pool.ntp.org',
                          'africa-america.pool.ntp.org',
                          _name='server')),
                TR(INPUT(_type='submit', _value='Stamp'))))
    if form.accepts(request.vars, session):
        from time import ctime
        import ntplib
        client = ntplib.NTPClient()
        try:
            response = client.request(form.vars.server, version=3)
            results = ['Network time server: ' + form.vars.server,
                       'Offset : %f' % response.offset,
                       'Stratum : %s (%d)' % (ntplib.stratum_to_text(response.stratum),
                            response.stratum),
                       'Precision : %d' % response.precision,
                       'Root delay : %f ' % response.root_delay,
                       'Root dispersion : %f' % response.root_dispersion,
                       'Delay : %f' % response.delay,
                       'Leap indicator : %s (%d)' % (ntplib.leap_to_text(response.leap),
                            response.leap),
                       'Poll : %d' % response.poll,
                       'Mode : %s (%d)' % (ntplib.mode_to_text(response.mode), 
                            response.mode),
                       'Reference clock identifier : ' + \
                            ntplib.ref_id_to_text(response.ref_id,
                            response.stratum), 
                       'Original timestamp : ' + ctime(response.orig_time),
                       'Receive timestamp : ' + ctime(response.recv_time),
                       'Transmit timestamp : ' + ctime(response.tx_time),
                       'Destination timestamp : ' + ctime(response.dest_time)]
            db.log.insert(event='NTP timestamp. ' + ' | '.join(results), 
                      user=session.username)
            db.user_event.insert(event='NTP timestamp. ' + ' | '.join(results), 
                      user=session.username)
            db.entry_hash.insert(eid='NTP', edatetime='NTP', etitle='NTP', 
                        ehash='NTP timestamp. ' + ' | '.join(results))
            db.comment_hash.insert(cid='NTP', cdatetime='NTP', eid='NTP', 
                        chash='NTP timestamp. ' + ' | '.join(results))
        except: 
            results = 'Failure to connect to network time server or there is \
            an internet error. Please try again later.'
        session.result = results
        redirect(URL(r=request, f='ntp_stamp_output'))
    return dict(form=form)
コード例 #3
0
    def test_helpers(self):
        """Helper methods tests."""
        client = ntplib.NTPClient()

        time.sleep(self.POLL_DELAY)
        info = client.request(self.NTP_SERVER)

        self.assertEqual(int(info.tx_time), ntplib.ntp_to_system_time(
                         ntplib.system_to_ntp_time(int(info.tx_time))))

        self.assertTrue(isinstance(ntplib.leap_to_text(info.leap), str))
        self.assertTrue(isinstance(ntplib.mode_to_text(info.mode), str))
        self.assertTrue(isinstance(ntplib.stratum_to_text(info.stratum), str))
        self.assertTrue(isinstance(ntplib.ref_id_to_text(info.ref_id,
                                                         info.stratum), str))
コード例 #4
0
    def test_helpers(self):
        """Helper methods tests."""
        client = ntplib.NTPClient()

        time.sleep(self.POLL_DELAY)
        info = client.request(self.NTP_SERVER)

        self.assertEqual(
            int(info.tx_time),
            ntplib.ntp_to_system_time(
                ntplib.system_to_ntp_time(int(info.tx_time))))

        self.assertTrue(isinstance(ntplib.leap_to_text(info.leap), str))
        self.assertTrue(isinstance(ntplib.mode_to_text(info.mode), str))
        self.assertTrue(isinstance(ntplib.stratum_to_text(info.stratum), str))
        self.assertTrue(
            isinstance(ntplib.ref_id_to_text(info.ref_id, info.stratum), str))
コード例 #5
0
ファイル: znt.py プロジェクト: noaaerma/noaadata
def print_response(response):
    print ("Version number : %d" % response.version)
    print ("Offset : %f" % response.offset)
    print ("Stratum : %s (%d)" % (ntplib.stratum_to_text(response.stratum), response.stratum))
    print ("Precision : %d" % response.precision)
    print ("Root delay : %f " % response.root_delay)
    print ("Root dispersion : %f" % response.root_dispersion)
    print ("Delay : %f" % response.delay)
    print ("Leap indicator : %s (%d)" % (ntplib.leap_to_text(response.leap), response.leap))
    print ("Poll : %d" % response.poll)
    print ("Mode : %s (%d)" % (ntplib.mode_to_text(response.mode), response.mode))
    print ("Python time: %f, %s" % (time.time(), str(datetime.datetime.utcnow())))
    print ("Transmit timestamp : " + time.ctime(response.tx_time))
    print ("Reference timestamp : " + time.ctime(response.ref_time))
    print ("Original timestamp : " + time.ctime(response.orig_time))
    print ("Receive timestamp : " + time.ctime(response.recv_time))
    print ("Destination timestamp : " + time.ctime(response.dest_time))
    print ("Reference clock identifier : " + ntplib.ref_id_to_text(response.ref_id, response.stratum))
コード例 #6
0
ファイル: znt.py プロジェクト: schwehr/noaadata
def print_response(response):
    print('Version number : %d' % response.version)
    print('Offset : %f' % response.offset)
    print('Stratum : %s (%d)' % (ntplib.stratum_to_text(response.stratum),
        response.stratum))
    print('Precision : %d' % response.precision)
    print('Root delay : %f ' % response.root_delay)
    print('Root dispersion : %f' % response.root_dispersion)
    print('Delay : %f' % response.delay)
    print('Leap indicator : %s (%d)' % (ntplib.leap_to_text(response.leap), response.leap))
    print('Poll : %d' % response.poll)
    print('Mode : %s (%d)' % (ntplib.mode_to_text(response.mode), response.mode))
    print('Python time: %f, %s' % (time.time(), str(datetime.datetime.utcnow())))
    print('Transmit timestamp : ' + time.ctime(response.tx_time))
    print('Reference timestamp : ' + time.ctime(response.ref_time))
    print('Original timestamp : ' + time.ctime(response.orig_time))
    print('Receive timestamp : ' + time.ctime(response.recv_time))
    print('Destination timestamp : ' + time.ctime(response.dest_time))
    print('Reference clock identifier : ' + ntplib.ref_id_to_text(response.ref_id, response.stratum))
コード例 #7
0
def print_response(response):
    print('Version number : %d' % response.version)
    print('Offset : %f' % response.offset)
    print('Stratum : %s (%d)' %
          (ntplib.stratum_to_text(response.stratum), response.stratum))
    print('Precision : %d' % response.precision)
    print('Root delay : %f ' % response.root_delay)
    print('Root dispersion : %f' % response.root_dispersion)
    print('Delay : %f' % response.delay)
    print('Leap indicator : %s (%d)' %
          (ntplib.leap_to_text(response.leap), response.leap))
    print('Poll : %d' % response.poll)
    print('Mode : %s (%d)' %
          (ntplib.mode_to_text(response.mode), response.mode))
    print('Python time: %f, %s' %
          (time.time(), str(datetime.datetime.utcnow())))
    print('Transmit timestamp : ' + time.ctime(response.tx_time))
    print('Reference timestamp : ' + time.ctime(response.ref_time))
    print('Original timestamp : ' + time.ctime(response.orig_time))
    print('Receive timestamp : ' + time.ctime(response.recv_time))
    print('Destination timestamp : ' + time.ctime(response.dest_time))
    print('Reference clock identifier : ' +
          ntplib.ref_id_to_text(response.ref_id, response.stratum))
コード例 #8
0

if len(sys.argv) > 1:
    hostname = sys.argv[1]
else:
    sys.stdout.write('NTP server ? ')
    hostname = sys.stdin.readline().strip()

client = ntplib.NTPClient()
response = client.request(hostname, version=3)

print('Version number : %d' % response.version)
print('Offset : %f' % response.offset)
print('Stratum : %s (%d)' % (ntplib.stratum_to_text(response.stratum),
    response.stratum))
print('Precision : %d' % response.precision)
print('Root delay : %f ' % response.root_delay)
print('Root dispersion : %f' % response.root_dispersion)
print('Delay : %f' % response.delay)
print('Leap indicator : %s (%d)' % (ntplib.leap_to_text(response.leap),
    response.leap))
print('Poll : %d' % response.poll)
print('Mode : %s (%d)' % (ntplib.mode_to_text(response.mode), response.mode))
print('Transmit timestamp : ' + str(response.tx_time))
print('Reference timestamp : ' + str(response.ref_time))
print('Original timestamp : ' + str(response.orig_time))
print('Receive timestamp : ' + str(response.recv_time))
print('Destination timestamp : ' + str(response.dest_time))
print('Reference clock identifier : ' + ntplib.ref_id_to_text(response.ref_id,
    response.stratum))