1#! /usr/bin/env python 2 3# Python interface to the Internet finger daemon. 4# 5# Usage: finger [options] [user][@host] ... 6# 7# If no host is given, the finger daemon on the local host is contacted. 8# Options are passed uninterpreted to the finger daemon! 9 10 11import sys, string 12from socket import * 13 14 15# Hardcode the number of the finger port here. 16# It's not likely to change soon... 17# 18FINGER_PORT = 79 19 20 21# Function to do one remote finger invocation. 22# Output goes directly to stdout (although this can be changed). 23# 24def finger(host, args): 25 s = socket(AF_INET, SOCK_STREAM) 26 s.connect((host, FINGER_PORT)) 27 s.send(args + '\n') 28 while 1: 29 buf = s.recv(1024) 30 if not buf: break 31 sys.stdout.write(buf) 32 sys.stdout.flush() 33 34 35# Main function: argument parsing. 36# 37def main(): 38 options = '' 39 i = 1 40 while i < len(sys.argv) and sys.argv[i][:1] == '-': 41 options = options + sys.argv[i] + ' ' 42 i = i+1 43 args = sys.argv[i:] 44 if not args: 45 args = [''] 46 for arg in args: 47 if '@' in arg: 48 at = string.index(arg, '@') 49 host = arg[at+1:] 50 arg = arg[:at] 51 else: 52 host = '' 53 finger(host, options + arg) 54 55 56# Call the main function. 57# 58main() 59