I am trying to grab 802.11 beacons and print them. Printing adds a line whereas stdout prefixes random spaces before/after the channel. Any ideas how to get the line flush to the left without a new line?
def beacon_sniff(pkt):
try:
sta_oui = pkt.addr2[0:8] # Grab vendor OUI of BSSID
if pkt.subtype == 8:
if pkt.addr2 not in ap:
if pkt.info != "\x00\x00\x00\x00\x00\x00\x00\x00": #Filter out hidden SSID's
ap.append(pkt.addr2)
#print '{0:<7} \t {1:<32} \t {2:<20} \t {3:<10} \t {4:<10}'.format(int(ord(pkt[5].info)), pkt.info, pkt.addr2, -(256-ord(pkt[0].notdecoded[-4:-3])), get_vendor(sta_oui))
sys.stdout.write("{0:<7} \t {1:<32} \t {2:<20} \t {3:<10} \t {4:<10}".format(int(ord(pkt[5].info)), pkt.info, pkt.addr2, -(256-ord(pkt[0].notdecoded[-4:-3])), get_vendor(sta_oui)))
sys.stdout.flush()
except:
pass
stdout:
6 TALKTALK-F148E8...
6 BTHub3-Z3KP...
1 BTWifi-X...
print:
6 TALKTALK-F148E8...
6 BTHub3-Z3KP...
1 BTWifi-X...