用python访问ftp站点,主动模式发送port时,修改了IP地址,抓包分析网络会话信息。
activesocket.py
1 #python for socket active mode
2 #!/usr/bin/python
3 # -*- coding: utf-8 -*-
4 import ftplib
5 import os
6 import socket
7 import sys
8
9 HOST = '10.52.26.26'
10 DIRN = '/file_yes'
11 FILE = 'put.txt'
12 host1 = '10.25.46.26'
13 port1 = 15245
14
15
16
17 def main():
18 try:
19 f = ftplib.FTP(HOST)
20 except (socket.error, socket.gaierror):
21 print 'ERROR:cannot reach " %s"' % HOST
22 return
23 print '***Connected to host "%s"' % HOST
24
25 try:
26 f.login('FTP002','*******')
27 except ftplib.error_perm:
28 print 'ERROR: cannot login FTP'
29 f.quit()
30 return
31 #print f.getwelcome()
32 print '*** Logged in as "FTP"'
33 print f.getwelcome()
34
35 try:
36 f.sendcmd('SYST')
37 f.sendcmd('PWD')
38 f.sendcmd('CWD /file_yes')
39 f.sendcmd('PWD')
40 f.sendcmd('TYPE I')
41 print f.sendport(host1,port1)
42 except ftplib.error_perm:
43 print 'ERROR:error with putcmd'
44 f.quit()
45 return
46 print '***putcmd successfully'
47
48 #To establish a TCP connection
49 try:
50 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
51 except socket.error,msg:
52 print 'Failed to create socket.Error code:'+str(msg[0])+',Error message'+msg[1]
53 sys.exit()
54 print 'Socket Create'
55 try:
56 s.bind((host1,port1))
57 except socket.error,msg:
58 print 'Bind failed.Error Code:'+str(msg[0])+',Error message'+msg[1]
59 sys.exit()
60 print 'Socket bind complete!'
61
62 s.listen(10)
63 print 'socket now listening'
64
65 print f.sendcmd('LIST')
66
67 f.quit()
68 return
69
70
71
72 # try:
73 # f.cwd(DIRN)
74 # except ftplib.error_perm:
75 # print 'ERRORL cannot CD to "%s"' % DIRN
76 # f.quit()
77 # return
78 # print '*** Changed to "%s" folder' % DIRN
79
80 # try:
81 # f.dir()
82 # except ftplib.error_perm:
83 # print 'ERRORL list "%s" info' % DIRN
84 # f.quit()
85 # return
86 # print '*** This is "%s" folder info' % DIRN
87
88
89 # try:
90 # buf_size = 1024
91 # f.storbinary('stor %s' %FILE, open(FILE, 'rb'),buf_size)
92 # except ftplib.error_perm:
93 # print 'ERROR: cannot read file "%s"' % FILE
94 # os.unlink(FILE)
95 # else:
96 # print '*** Uploaded "%s" to CWD' % FILE
97
98 if __name__ == '__main__':
99 main()