summaryrefslogtreecommitdiff
path: root/src/examples/getNTPserversNew.py
diff options
context:
space:
mode:
authorPaul McGuire <ptmcg@austin.rr.com>2012-10-02 04:55:56 +0000
committerPaul McGuire <ptmcg@austin.rr.com>2012-10-02 04:55:56 +0000
commita7f9dda0668bfce4fba51df1bf2976b4a93a8bd5 (patch)
tree57ea8bcf2e66532a36c833a7bc57cff9d5d0e4dd /src/examples/getNTPserversNew.py
parentf5d2b716ffb57b65660a7ee0bbf04332dfb29620 (diff)
downloadpyparsing-git-a7f9dda0668bfce4fba51df1bf2976b4a93a8bd5.tar.gz
Add example files to SVN
Diffstat (limited to 'src/examples/getNTPserversNew.py')
-rw-r--r--src/examples/getNTPserversNew.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/examples/getNTPserversNew.py b/src/examples/getNTPserversNew.py
new file mode 100644
index 0000000..47d5439
--- /dev/null
+++ b/src/examples/getNTPserversNew.py
@@ -0,0 +1,30 @@
+# getNTPserversNew.py
+#
+# Demonstration of the parsing module, implementing a HTML page scanner,
+# to extract a list of NTP time servers from the NIST web site.
+#
+# Copyright 2004-2010, by Paul McGuire
+# September, 2010 - updated to more current use of setResultsName, new NIST URL
+#
+from pyparsing import (Word, Combine, Suppress, SkipTo, nums, makeHTMLTags,
+ delimitedList, alphas, alphanums)
+import urllib
+
+integer = Word(nums)
+ipAddress = Combine( integer + "." + integer + "." + integer + "." + integer )
+hostname = delimitedList(Word(alphas,alphanums+"-_"),".",combine=True)
+tdStart,tdEnd = makeHTMLTags("td")
+timeServerPattern = (tdStart + hostname("hostname") + tdEnd +
+ tdStart + ipAddress("ipAddr") + tdEnd +
+ tdStart + SkipTo(tdEnd)("loc") + tdEnd)
+
+# get list of time servers
+nistTimeServerURL = "http://tf.nist.gov/tf-cgi/servers.cgi#"
+serverListPage = urllib.urlopen( nistTimeServerURL )
+serverListHTML = serverListPage.read()
+serverListPage.close()
+
+addrs = {}
+for srvr,startloc,endloc in timeServerPattern.scanString( serverListHTML ):
+ print "%s (%s) - %s" % (srvr.ipAddr, srvr.hostname.strip(), srvr.loc.strip())
+ addrs[srvr.ipAddr] = srvr.loc