mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.1 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()
 | 
