一、最简单方法
import socket
hostname = 'www.baidu.com'
print(socket.gethostbyname(hostname))
二、函数封装
import socket
import sys
def get_host_ip(hostname):
return socket.gethostbyname(hostname)
def main():
hostname = sys.argv[1]
ip = get_host_ip(hostname)
print(hostname + ':' + ip )
if __name__ == '__main__':
main()
三、类封装
import socket
import sys
class GetHostIP(object):
def __init__(self,hostname):
self.hostname = hostname
def GetHostIp(self):
return socket.gethostbyname(self.hostname)
def main():
print(GetHostIP(sys.argv[1]).GetHostIp())
if __name__ == '__main__':
main()
四、套接字初始化
import socket
import sys
class PortScanner(object):
def __init__(self,ip,ports): //初始化对象
self.ip = ip
self.ports = ports
def scan(self):
for port in self.ports: //遍历端口
s = socket.socket() //实例化对象
try:
s.connect((self.ip,port)) //建立连接
print('Port Found:' + str(port)) //连接成功打印
s.close()
except:
pass
def main():
ports = [135,445,5357] //要扫描的端口
ps = PortScanner(sys.argv[1],ports) //创建对象,初始化IP和端口
ps.scan() //调用对象方法
if __name__ == '__main__':
main()