进入13关,提示告诉我们要phone that evil,联想到上一关的“Bert is evil”,于是就猜测是要给Bert“打电话”
可是点击图中的5(即把我们引向一个php网页),返回给我们的XML文件并不包含任何信息。于是猜测我们RPC(remote procedure call)时少传了参数
于是联想到xmlrpclib这个库,XML-PRC是一种使用xml文本的方式利用http协议传输命令和数据的rpc机制,python利用xmlrpclib模块可以让程序与其他任何语言编写的XML-PRC
服务器进行数据传输。
用这个库创建一个服务器对象,查看其提供的方法:
import xmlrpclib
server=xmlrpclib.Server("http://www.pythonchallenge.com/pc/phonebook.php")
print server.system.listMethods()
输出:
['phone', 'system.listMethods', 'system.methodHelp', 'system.methodSignature', 'system.multicall', 'system.getCapabilities']
只有第一个方法不是系统方法,于是添加以下语句:
print server.phone('Bert')
给Bert成功打电话!输出:555-ITALY,经过试验italy是下一关网址——
http://www.pythonchallenge.com/pc/return/italy.html
GET!Excited!!!