pythonhostname
㈠ 關於python 不能返回我的主機名
socket.gethostbyname(),需要一個參數的,而且這個不是返回主機名,是返回主機名對應的ip地址
你想要用的可能是
socket.gethostname() 函數
㈡ 如何使用python遠程登錄一個操作系統,並執行某條命令
你可以使用python的pexcpct包通過ssh調用遠程伺服器指令:
import pxssh
import getpass
try:
s = pxssh.pxssh()
hostname = raw_input('hostname: ')
username = raw_input('username: ')
password = getpass.getpass('password: ')
s.login (hostname, username, password)
s.sendline ('uptime') # run a command
s.prompt() # match the prompt
print s.before # print everything before the propt.
s.sendline ('ls -l')
s.prompt()
print s.before
s.sendline ('df')
s.prompt()
print s.before
s.logout()
except pxssh.ExceptionPxssh, e:
print "pxssh failed on login."
print str(e)
㈢ python怎麼獲取linux主機名
獲取主機名
import socket
hostName = socket.gethostname()
㈣ python發送含有多個變數的網頁正文郵件
首先了解SMTP(簡單郵件傳輸協議),郵件傳送代理程序使用SMTP協議來發送電郵到接收者的郵件伺服器。SMTP協議只能用來發送郵件,不能用來接收郵件,而大多數的郵件發送伺服器都是使用SMTP協議。SMTP協議的默認TCP埠號是25。
本文主要介紹利用'smtplib','email'兩個模塊來實現郵件的發送,可以如下查看兩個模塊的函數和方法:
smtplib模塊簡介:
smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
此為SMTP類構造函數,表示與SMTP伺服器之間的連接,並根據這個連接向smtp伺服器發送指令,執行相關操作(如:登陸、發送郵件),且每個參數都是可選的。
其中最重要的參數:
host:smtp伺服器主機名
port:smtp服務的埠,默認是25;
如果在創建SMTP對象的時候提供了這兩個參數,在初始化的時候會自動調用connect方法去連接伺服器。
smtplib.SMTP還提供了如下方法:
SMTP.set_debuglevel(level):設置是否為調試模式
SMTP.connect([host[, port]]):連接到指定的smtp伺服器。參數分別表示 smpt主機和埠。
SMTP.docmd(cmd[, argstring]):向smtp伺服器發送指令。
SMTP.helo([hostname]) :使用"helo"指令向伺服器確認身份。
SMTP.login(user, password):登陸到smtp伺服器。現在幾乎所有smtp伺服器,都必須在驗證用戶信息合法之後才允許發送郵件。(重要!)
SMTP.sendmail(from_addr,to_addrs,msg[,mail_options,rcpt_options]):發送郵件。這里要注意一下第三個參數,msg是字元串,表示郵件。我們知道郵件一般由標題,發信人,收件人,郵件內容,附件等構成,發送郵件的時候,要注意msg的格式。這個格式就是smtp協議中定義的格式。SMTP.quit() :斷開與smtp伺服器的連接,相當於發送"quit"指令。(重要!)
常用的函數方法:
email模塊
1.class email.message.Message
__getitem__,__setitem__實現obj[key]形式的訪問。
Msg.attach(playload): 向當前Msg添加playload。
Msg.set_playload(playload):
Msg.add_header(_name, _value, **_params): 添加郵件頭欄位。
2.class email.mime.base.MIMEBase(_maintype, _subtype, **_params)
所有MIME類的基類,是email.message.Message類的子類。
3.class email.mime.multipart.MIMEMultipart()
在3.0版本的email模塊 (Python 2.3-Python 2.5) 中,這個類位於email.MIMEMultipart.MIMEMult ipart。這個類是MIMEBase的直接子類,用來生成包含多個部分的郵件體的MIME對象。
4.class email.mime.text.MIMEText(_text)
使用字元串_text來生成MIME對象的主體文本。
獲得所需要使用的郵箱的host地址和port埠號,(本文使用的是163郵箱,對應的smtp伺服器地址:mail.163.com,埠號25)
常用郵箱的smtp伺服器地址和埠號如圖:
編寫程序如下:
#! /usr/bin/env python
import smtpli
from email.mime.text import MIMEText
mailto_list=['[email protected]'] #收件人(列表)
mail_host="smtp.163.com" #使用的郵箱的smtp伺服器地址
mail_user="name" #用戶名
mail_pass="pwd" #密碼
mail_postfix="postfix" #郵箱的後綴
def send_mail(to_list,sub,content):
me="hello"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,_subtype='plain')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list) #將收件人列表以『;』分隔
try:
server = smtplib.SMTP()
server.connect(mail_host) #連接伺服器
server.login(mail_user,mail_pass) #登錄操作
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
for i in range(5): #發送五封,不過會被攔截的。。。
if send_mail(mailto_list,"hello","haha!"): #郵件主題和郵件內容
print "done!"
else:
print "failed!"
最後,可以運行編寫的py文件,可以得到如圖所是的結果,代表郵件發送成功。
這樣,就能成功實現用Python發送郵件啦!
㈤ python中gethostname得到的主機名是啥
importsocket
socket.gethostname()
#'hostname'
主機名就是計算機的名字(計算機名),網上鄰居就是根據主機名來識別的。這個名字可以隨時更改,在windows操作系統中,從我的電腦屬性的計算機名就可更改。
需要注意的是,主機名和用戶登錄名稱無關。
㈥ python 新手,請問這個問題如何解決
調用bind方法的必須是socket類的實例,而不能是scoket類本身
將socket.bind(args)改為
NET.bind(args)
如果你用的是linux,有hostname這個命令的話應該就沒問題了
㈦ python中os.path.gethostname 什麼意思
沒有這個os.path.gethostname
只有socket.gethostname() #hostname 主機名
㈧ python 批量處理(通過ip地址獲取機器名)
importsys,socket
try:
ipLines=open('ip.txt').readlines()
results=[]
foripinipLines:
result=socket.gethostbyaddr(ip.replace(' ',''))
results.append(result[0])
print"Primaryhostname:"
print""+result[0]
print" Addresses:"
foriteminresult[2]:
print""+item
wr=open('hostname.txt','w+')
forhostinresults:
wr.write(host)
wr.write(' ')
wr.close()
exceptsocket.herror,e:
print"Couldn'tlookupname:",e
㈨ python 實現郵件合並
用Python的smtplib就可以簡單的實現郵件功能。什麼是SMTP?郵件功能怎麼實現?
SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協議,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。
python的smtplib提供了一種很方便的途徑發送電子郵件。它對smtp協議進行了簡單的封裝。
Python創建 SMTP 對象語法如下:
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
參數說明:
host: SMTP 伺服器主機。 你可以指定主機的ip地址或者域名如: runoob.com,這個是可選參數。
port: 如果你提供了 host 參數, 你需要指定 SMTP 服務使用的埠號,一般情況下 SMTP 埠號為25。
local_hostname: 如果 SMTP 在你的本機上,你只需要指定伺服器地址為 localhost 即可。
Python SMTP 對象使用 sendmail 方法發送郵件,語法如下:
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
㈩ python 怎麼獲取本機的外網ip
>>> import socket
>>> hostname = socket.gethostname()
>>> print hostname
LuciferYang.local
>>> ip = socket.gethostbyname(hostname)
>>> print ip
10.101.8.171
>>> ipList = socket.gethostbyname_ex(hostname)
>>> print ipList
('luciferyang.local', [], ['10.101.8.171'])
理論上,不是伺服器的話不用有直接外網IP到機器,辦公室環境或者家庭環境都是區域網環境,外網IP都在路由器上面