URLを与えたらサーバ名を文字列で返すPythonコード

def getServerName( url=URL ):
  '''
  URLを与えたらサーバ名を文字列で返す
  '''
  import urllib
  url = url.rstrip()
  site = urllib.urlopen( url )
  info = site.headers
  infostr = str(info)
  sep = infostr.split('\n')
  for s in sep:
    if 'Server:' in str(s):
      server = s + '\n'
      break
    else:
      server = '??\n'
  return url + ' ' + server

正確にはURL+サーバ名を返す。


ウェザーニュース(http://weathernews.jp/)の場合、

'http://weathernews.jp/ Server: Apache/2.2.13 (FreeBSD)
mod_ssl/2.2.13 OpenSSL/0.9.8e mod_fastcgi/2.4.6\r\n

となった。
(FreeBSD)


Ubuntu(https://forums.ubuntulinux.jp/)の場合、

'https://forums.ubuntulinux.jp/ Server: lighttpd/1.4.19\r\n'

となった。
(lighttpd)


へー、あのサイトはFreeBSD使ってるんだー、とか
lighttpdっていうソフトがあるんだー
などがわかって楽しむことができます。