From: Sean O'Dell Date: 2003-10-01T15:02:48+09:00 Subject: Re: HTML-Parser / SGML-Parser Zach Dennis wrote: > Ok, silly question. > > I am writing a script to determine my router's WAN ip address and then to > email me once an hour in case it changes. Currently I am running a web > server at work that returns a page with the client's ip address. I need to > parse out the info on the page so I can extract the ip address of my router > when my script/program connects. > > I am using the html-parser, sgml-parser and formatter ruby libraries > provided from raa and I have made the changes to the regexp regarding image > width and height. So I'm good there. > > In my test.rb file I say: > ------------------------------------------------ > h = Net::HTTP.new('www.zachstestip.com' , 80 ) > resp,data = h.get('/index.php' , nil ) > > w = DumbWriter.new > f = AbstractFormatter.new(w) > p = HTMLParser.new(f) > p.feed(data) > p.close > ------------------------------------------------ > > Here comes the silly part. The function "feed" is inherited by sgml-parser > to html-parser. It passes "data" along to the sgml-parser function > "goahead". It prints everything to stdout or stderr( i dont know, but it > makes it to my screen =), but there is no print, put, etc... etc... call to > send it there!!! I cant for the life of me determine where in the feed or > goahead functions are outputting my parsed results from data! This is damn > silly of me to ask I know, but how is it getting to my CLI? > > In the "goahead" function there is a giant while loop. If i place a print or > puts statement at the right before the loop and right after the loop, then > nothing is outputted( except for my explicit print/puts statements). > > Am I losing it? Why not just qualify your IP address with something like >>>>IP<<<< and then you can regex for it like this: match = />>>>(.+)<<< your IP address Sean O'Dell