From 0b19bb71ba5a4afa84e673a8239935426fa0db23 Mon Sep 17 00:00:00 2001 From: ptmcg Date: Tue, 9 Aug 2016 21:50:19 +0000 Subject: Remove incorrect tag directory git-svn-id: svn://svn.code.sf.net/p/pyparsing/code/tags/pyparsing_2.1.6@405 9bf210a0-9d2d-494c-87cf-cfb32e7dff7b --- trunk/src/examples/dhcpd_leases_parser.py | 87 ------------------------------- 1 file changed, 87 deletions(-) delete mode 100644 trunk/src/examples/dhcpd_leases_parser.py (limited to 'trunk/src/examples/dhcpd_leases_parser.py') diff --git a/trunk/src/examples/dhcpd_leases_parser.py b/trunk/src/examples/dhcpd_leases_parser.py deleted file mode 100644 index 145e6ea..0000000 --- a/trunk/src/examples/dhcpd_leases_parser.py +++ /dev/null @@ -1,87 +0,0 @@ -# -# dhcpd_leases_parser.py -# -# Copyright 2008, Paul McGuire -# -# Sample parser to parse a dhcpd.leases file to extract leases -# and lease attributes -# -# format ref: http://www.linuxmanpages.com/man5/dhcpd.leases.5.php -# - -sample = r"""\ -# All times in this file are in UTC (GMT), not your local timezone. This is -# not a bug, so please don't ask about it. There is no portable way to -# store leases in the local timezone, so please don't request this as a -# feature. If this is inconvenient or confusing to you, we sincerely -# apologize. Seriously, though - don't ask. -# The format of this file is documented in the dhcpd.leases(5) manual page. -# This lease file was written by isc-dhcp-V3.0.4 - -lease 192.168.0.250 { - starts 3 2008/01/23 17:16:41; - ends 6 2008/02/02 17:16:41; - tstp 6 2008/02/02 17:16:41; - binding state free; - hardware ethernet 00:17:f2:9b:d8:19; - uid "\001\000\027\362\233\330\031"; -} -lease 192.168.0.198 { - starts 1 2008/02/04 13:46:55; - ends never; - tstp 1 2008/02/04 17:04:14; - binding state free; - hardware ethernet 00:13:72:d3:3b:98; - uid "\001\000\023r\323;\230"; -} -lease 192.168.0.239 { - starts 3 2008/02/06 12:12:03; - ends 4 2008/02/07 12:12:03; - tstp 4 2008/02/07 12:12:03; - binding state free; - hardware ethernet 00:1d:09:65:93:26; -} -""" - -from pyparsing import * -import datetime,time - -LBRACE,RBRACE,SEMI,QUOTE = map(Suppress,'{};"') -ipAddress = Combine(Word(nums) + ('.' + Word(nums))*3) -hexint = Word(hexnums,exact=2) -macAddress = Combine(hexint + (':'+hexint)*5) -hdwType = Word(alphanums) - -yyyymmdd = Combine((Word(nums,exact=4)|Word(nums,exact=2))+ - ('/'+Word(nums,exact=2))*2) -hhmmss = Combine(Word(nums,exact=2)+(':'+Word(nums,exact=2))*2) -dateRef = oneOf(list("0123456"))("weekday") + yyyymmdd("date") + \ - hhmmss("time") - -def utcToLocalTime(tokens): - utctime = datetime.datetime.strptime("%(date)s %(time)s" % tokens, - "%Y/%m/%d %H:%M:%S") - localtime = utctime-datetime.timedelta(0,time.timezone,0) - tokens["utcdate"],tokens["utctime"] = tokens["date"],tokens["time"] - tokens["localdate"],tokens["localtime"] = str(localtime).split() - del tokens["date"] - del tokens["time"] -dateRef.setParseAction(utcToLocalTime) - -startsStmt = "starts" + dateRef + SEMI -endsStmt = "ends" + (dateRef | "never") + SEMI -tstpStmt = "tstp" + dateRef + SEMI -tsfpStmt = "tsfp" + dateRef + SEMI -hdwStmt = "hardware" + hdwType("type") + macAddress("mac") + SEMI -uidStmt = "uid" + QuotedString('"')("uid") + SEMI -bindingStmt = "binding" + Word(alphanums) + Word(alphanums) + SEMI - -leaseStatement = startsStmt | endsStmt | tstpStmt | tsfpStmt | hdwStmt | \ - uidStmt | bindingStmt -leaseDef = "lease" + ipAddress("ipaddress") + LBRACE + \ - Dict(ZeroOrMore(Group(leaseStatement))) + RBRACE - -for lease in leaseDef.searchString(sample): - print(lease.dump()) - print(lease.ipaddress,'->',lease.hardware.mac) - print() -- cgit v1.2.1