Python在.txt文件的IP地址列表上运行DNS查找

时间:2018-01-07 20:42:51

标签: python python-3.x reverse-dns

我很难弄清楚如何让python对我的文本文件中的每个IP地址进行DNS查找。我得到一个TypeError:getaddrinfo()参数1必须是字符串或无。任何人都可以帮忙吗?

class PostsController < ApplicationController
def index
  @posts = Post.all.order("created_at DESC")
end

def new
  @post = Post.new
end

def create
  if current_user
  @post.user_id = current_user.id
end
  @post= Post.new(post_params)

  if @post.save
    redirect_to @post
  else
    render 'new'
  end
end

def show
    @post = Post.find(params[:id])
end

def edit
  @post = Post.find(params[:id])
end

def update
  @post = Post.find(params[:id])

  if @post.update(post_params)
    redirect_to @post
  else
     render 'edit'
  end
end

def destroy
  @post = Post.find(params[:id])
  @post.destroy

  redirect_to posts_path
end

private

def post_params
params.require(:post).permit(:title, :body, :theme)
end


end

1 个答案:

答案 0 :(得分:1)

当您需要迭代文件迭代器并将字符串传递给函数时,您将file可迭代对象作为参数直接传递给socket.getaddrinfo。假设每行包含一个IP:

with open('output.txt') as f:
    for ip in f:
        out = socket.getaddrinfo(ip, 0)
        ...

注意:

  • 自动使用with open...上下文管理器close()文件对象,即使出现错误也无需显式调用close()

  • 默认情况下open()以读取(r)模式打开文件,因此指定r是多余的,不会伤害BTW。