]> git.proxmox.com Git - mirror_edk2.git/blob - AppPkg/Applications/Python/Python-2.7.2/Demo/sockets/finger.py
9cd854ccc437c6fac6eb7c9fd30a40d524cade82
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Demo / sockets / finger.py
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
11 import sys, string
12 from socket import *
13
14
15 # Hardcode the number of the finger port here.
16 # It's not likely to change soon...
17 #
18 FINGER_PORT = 79
19
20
21 # Function to do one remote finger invocation.
22 # Output goes directly to stdout (although this can be changed).
23 #
24 def 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 #
37 def 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 #
58 main()