mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#! /usr/bin/env python
 | 
						|
 | 
						|
# Python interface to the Internet finger daemon.
 | 
						|
#
 | 
						|
# Usage: finger [options] [user][@host] ...
 | 
						|
#
 | 
						|
# If no host is given, the finger daemon on the local host is contacted.
 | 
						|
# Options are passed uninterpreted to the finger daemon!
 | 
						|
 | 
						|
 | 
						|
import sys, string
 | 
						|
from socket import *
 | 
						|
 | 
						|
 | 
						|
# Hardcode the number of the finger port here.
 | 
						|
# It's not likely to change soon...
 | 
						|
#
 | 
						|
FINGER_PORT = 79
 | 
						|
 | 
						|
 | 
						|
# Function to do one remote finger invocation.
 | 
						|
# Output goes directly to stdout (although this can be changed).
 | 
						|
#
 | 
						|
def finger(host, args):
 | 
						|
    s = socket(AF_INET, SOCK_STREAM)
 | 
						|
    s.connect((host, FINGER_PORT))
 | 
						|
    s.send(args + '\n')
 | 
						|
    while 1:
 | 
						|
        buf = s.recv(1024)
 | 
						|
        if not buf: break
 | 
						|
        sys.stdout.write(buf)
 | 
						|
    sys.stdout.flush()
 | 
						|
 | 
						|
 | 
						|
# Main function: argument parsing.
 | 
						|
#
 | 
						|
def main():
 | 
						|
    options = ''
 | 
						|
    i = 1
 | 
						|
    while i < len(sys.argv) and sys.argv[i][:1] == '-':
 | 
						|
        options = options + sys.argv[i] + ' '
 | 
						|
        i = i+1
 | 
						|
    args = sys.argv[i:]
 | 
						|
    if not args:
 | 
						|
        args = ['']
 | 
						|
    for arg in args:
 | 
						|
        if '@' in arg:
 | 
						|
            at = string.index(arg, '@')
 | 
						|
            host = arg[at+1:]
 | 
						|
            arg = arg[:at]
 | 
						|
        else:
 | 
						|
            host = ''
 | 
						|
        finger(host, options + arg)
 | 
						|
 | 
						|
 | 
						|
# Call the main function.
 | 
						|
#
 | 
						|
main()
 |