-
Notifications
You must be signed in to change notification settings - Fork 16
/
etss_server.py
101 lines (86 loc) · 3.16 KB
/
etss_server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/env python
#
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
#
# Permission is hereby granted, fpenrlowee of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
#
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# Test server port
#
# Test / monitor if server port is open
__author__ = 'Dobias van Ingen'
import socket
import getopt
import sys
def usage():
print "Usage: python etss_server.py -i <ip address> -p 'Port number'"
print " -i --ip Provide IP address from server to test"
print " -p --port Provide port number (service) to test"
print " -h --help Provide this help"
print "Example:"
print " Test Telnet"
print " etss_server.py --ip 192.168.56.203 --port 23"
print ""
def client_socket():
try:
# define IPv4 socket based on TCP
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
print "Failed to create socket. Error code: " + str(msg[0]) + " , Error message: " + msg[1]
sys.exit()
print "Socket is created"
return s
def connect_socket(s, host_ip, port):
try:
s.connect((host_ip, port))
except socket.error, msg:
print "Unable to connect socket, Error code: %s ,\nError message: %s. Program will exit" % (str(msg[0]), msg[1])
sys.exit()
print "Socket connected to port %s on ip %s" % (port, host_ip)
def main():
# need to define = for options that need input
long_args = ["ip=", "port=", "help"]
try:
# need to define : for optionals that need input
opts, args = getopt.getopt(sys.argv[1:], "i:p:h", long_args)
except getopt.GetoptError as err:
# print help information and exit:
print str(err) # will print something like "option -a not recognized"
usage()
sys.exit(2)
host_ip = None
port = None
for o, a in opts:
if o in ("-i", "--ip"):
host_ip = a
elif o in ("-p", "--port"):
port = int(a)
elif o in ("-h", "--help"):
usage()
sys.exit()
else:
assert False, "unhandled option"
s = client_socket()
connect_socket(s, host_ip, port)
s.close()
### Main Code
if __name__ == "__main__":
main()