<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Python_Server_Check_%C3%BCber_Klasse</id>
	<title>Python Server Check über Klasse - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Python_Server_Check_%C3%BCber_Klasse"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Python_Server_Check_%C3%BCber_Klasse&amp;action=history"/>
	<updated>2026-06-29T15:06:21Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Python_Server_Check_%C3%BCber_Klasse&amp;diff=19752&amp;oldid=prev</id>
		<title>Thomas.will: Die Seite wurde neu angelegt: „=Daten= *cat server_check.list  &lt;pre&gt; waka.xinux.org;80,443,389,636 caprica.xinux.org;80,443,389,636 doom.xinux.org;80,443 saubock.xinux.org;56,78 &lt;/pre&gt; =Skri…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Python_Server_Check_%C3%BCber_Klasse&amp;diff=19752&amp;oldid=prev"/>
		<updated>2019-12-05T11:36:43Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „=Daten= *cat server_check.list  &amp;lt;pre&amp;gt; waka.xinux.org;80,443,389,636 caprica.xinux.org;80,443,389,636 doom.xinux.org;80,443 saubock.xinux.org;56,78 &amp;lt;/pre&amp;gt; =Skri…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Daten=&lt;br /&gt;
*cat server_check.list &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
waka.xinux.org;80,443,389,636&lt;br /&gt;
caprica.xinux.org;80,443,389,636&lt;br /&gt;
doom.xinux.org;80,443&lt;br /&gt;
saubock.xinux.org;56,78&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Skript=&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#!/usr/bin/python3&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
import socket&lt;br /&gt;
import datetime&lt;br /&gt;
from pythonping import ping&lt;br /&gt;
dat_sys=sys.argv[1]&lt;br /&gt;
dat=open(dat_sys,&amp;quot;r&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
class server_check_class(object):&lt;br /&gt;
  def __init__(self,hostname,portlist):&lt;br /&gt;
     self.hostname = hostname&lt;br /&gt;
     self.portlist = portlist&lt;br /&gt;
&lt;br /&gt;
  def __dns_check(self):&lt;br /&gt;
    try:&lt;br /&gt;
      ip = socket.gethostbyname(self.hostname)&lt;br /&gt;
      return 1&lt;br /&gt;
    except socket.error:&lt;br /&gt;
      return 0&lt;br /&gt;
&lt;br /&gt;
  def host_status(self):&lt;br /&gt;
    if self.__dns_check():&lt;br /&gt;
      if ping(self.hostname, timeout=100, count=1):&lt;br /&gt;
        return 1&lt;br /&gt;
      else:&lt;br /&gt;
        return 0&lt;br /&gt;
    else:&lt;br /&gt;
       return 0&lt;br /&gt;
&lt;br /&gt;
  def port_status(self):&lt;br /&gt;
    for port in (self.portlist.split(&amp;quot;,&amp;quot;)):&lt;br /&gt;
      socket.setdefaulttimeout(1)&lt;br /&gt;
      start_time = datetime.datetime.now()&lt;br /&gt;
      try:&lt;br /&gt;
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br /&gt;
        connect = sock.connect_ex((self.hostname, int(port)))&lt;br /&gt;
        if connect == 0:&lt;br /&gt;
          print(&amp;quot; port status &amp;quot;  +  self.hostname + &amp;quot; &amp;quot; +  port  + &amp;quot; ok&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
          print(&amp;quot; port status &amp;quot;  +  self.hostname + &amp;quot; &amp;quot; +  port  + &amp;quot; not ok&amp;quot;)&lt;br /&gt;
          sock.close()&lt;br /&gt;
      except socket.error:&lt;br /&gt;
          print(&amp;quot; port status except&amp;quot;  +  self.hostname + &amp;quot; &amp;quot; +  port  + &amp;quot; not ok&amp;quot;)&lt;br /&gt;
      end_time = datetime.datetime.now()&lt;br /&gt;
&lt;br /&gt;
for l in dat:&lt;br /&gt;
    line = l.rstrip().split(&amp;quot;;&amp;quot;)&lt;br /&gt;
    x = server_check_class(line[0],line[1])&lt;br /&gt;
    if x.host_status():&lt;br /&gt;
     x.port_status()&lt;br /&gt;
    else:&lt;br /&gt;
     print(line[0] + &amp;quot; not reachable&amp;quot;)&lt;br /&gt;
dat.close()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>