Jul-12-2017, 05:43 PM
(Jul-12-2017, 05:14 PM)wavic Wrote: You have to deal with the system here. Iptables or just set temporary the mask of the address you don't want to use to 255.255.255.255
I'm able to generate a connection, but I would like to know if is possible to retrieve some info from a page, download something or print the page source code.
With this code I'm able to send traffic using other IP:
My IP address is 192.168.1.3/24 assigned by DHCP, then I use the command:
# ip address add 192.168.1.4/24 dev eth0
If I run this code I get the response back from the webpage
s ="" def netPacket(dsthost,dstport,srcip,srcport): global s #create an INET, STREAMing socket try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except socket.error: print 'Failed to create socket' sys.exit() print 'Socket Created' try: remote_ip = socket.gethostbyname( dsthost ) except socket.gaierror: #could not resolve print 'Hostname could not be resolved. Exiting' sys.exit() #connect using this IP s.bind((srcip,srcport)) #Connect to remote server s.connect((remote_ip , int(dstport))) print 'Socket Connected to ' + dsthost + ' with ip ' + remote_ip + ' and port ' + dstport + ' from ' + srcip + ':' + str(srcport) #Send some data to remote server message = "GET / HTTP/1.1\r\n\r\n" try : #Set the whole string s.sendall(message) except socket.error: #Send failed print 'Send failed' sys.exit() print 'Message send successfully' def recv_timeout(the_socket,timeout=2): #make socket non blocking the_socket.setblocking(0) #total data partwise in an array total_data=[]; data=''; #beginning time begin=time.time() while 1: #if you got some data, then break after timeout if total_data and time.time()-begin > timeout: break #if you got no data at all, wait a little longer, twice the timeout elif time.time()-begin > timeout*2: break #recv something try: data = the_socket.recv(8192) if data: total_data.append(data) #change the beginning time for measurement begin=time.time() else: #sleep for sometime to indicate a gap time.sleep(0.1) except: pass #join all parts to make final string return ''.join(total_data) netPacket('www.eicar.org','80','192.168.1.4',23454) print recv_timeout(s)