gethostbyaddr в Python

newfag

Registered
Здравейте, имам бот който е базиран на Python и искам да мога да видя хост-а записан на дадено IP.

Кода който ползвам е:

Код:
# dns lookup
import re
import socket

@hook.command
def dns(inp):
    '''.dns hostname to perform dns lookup.'''
	
      try:
       return socket.gethostbyaddr(inp)
      except socket.herror:
         return "There was a problem solving the host. "

Не става и не става. Имам нещо подобно, което е дали сайта работи
и е горе-долу еднакъв скрипта, но работи ;'(



Код:
import urlparse
from util import hook, http
@hook.command
def status(inp):
    '''.status <url> -- checks to see if the site is down'''

    if 'http://' not in inp:
        inp = 'http://' + inp

    inp = 'http://' + urlparse.urlparse(inp).netloc
    try:
        http.get(inp, get_method='HEAD')
        return inp + ' is currently 3online!'
    except http.URLError:
        return inp + ' is currently 5offline!'

Някой да има идеи защо не става? Мерси предварително.

Edit: Смених скрипта на това

Код:
import sys, socket, string, httplib, urlparse, urllib, re, urllib2, random, threading, cookielib
from xml.dom.minidom import parse, parseString
from time import sleep 
from util import hook, http

@hook.command   
def dns(inp):
 '.dns 5IP Reverse DNS for specified IP address. Example: .dns 127.0.0.1 will return localhost'
  sites = [inp]
  appid = '01CDBCA91C590493EE4E91FAF83E5239FEF6ADFD'
  ip = socket.gethostbyname(inp)
  offset = 50
  num = 1
  while offset < 300:
    url ="/xml.aspx?AppId=%s&Query=ip:%s&Sources=Web&Version=2.0&Market=en-us&Adult=Moderate&Options=EnableHighlighting&Web.Count=50&Web.Offset=%s&Web.Options=DisableQueryAlterations" % (appid,  ip,  offset)
    conn = httplib.HTTPConnection("api.bing.net")
    conn.request("GET", url)
    res = conn.getresponse()
    data = res.read()
    conn.close()
    xmldoc = parseString(data)
    name = xmldoc.getElementsByTagName('web:DisplayUrl')
    for n in name:
      temp = n.childNodes[0].nodeValue
      temp = temp.split("/")[0]
      if temp.find('www.') == -1:
	sites.append(temp)
    offset += 50
	return 'Target:' + inp 'IP:' ip 'Reverse IP Lookup Total:' len(sites)
domain(s)"))
  for si in sites:
    s.send("PRIVMSG %s :%s%s%s%s%s%s\r\n" % (chan,"[",num,"/",len(sites),"] http://", si))
    sleep(2)
    num += 1

Но ми дава грешка на линия 9, тоест

Код:
sites = [inp]
 

Back
Горе