get os type with python

  1. #!/usr/bin/env python 
  2.  
  3. import platform 
  4.  
  5. """ 
  6. Fingerprints the following Operating Systems: 
  7.  
  8. * Mac OS X 
  9. * Ubuntu 
  10. * Red Hat/Cent Os 
  11. * FreeBSD 
  12. * SunOS 
  13.  
  14. """ 
  15. class OpSysType(object): 
  16.     """Determins OS Type using platform module""" 
  17.     def __getattr__(self,attr): 
  18.         if attr == "osx"
  19.             return "osx" 
  20.         elif attr == "rhel"
  21.             return "redhat" 
  22.         elif attr == "centos"
  23.             return "centos" 
  24.         elif attr == "ubu"
  25.             return "ubuntu" 
  26.         elif attr == "fbsd"
  27.             return "FreeBSD" 
  28.         elif attr == "sun"
  29.             return "SunOS" 
  30.         elif attr == "unknow_linux"
  31.             return "unknow_linux" 
  32.         elif attr == "unknow"
  33.             return "unknow" 
  34.         else
  35.             raise AttributeError,attr 
  36.  
  37.     def linuxType(self): 
  38.         """Uses various methods to determine Linux Type """  
  39.  
  40.         if platform.dist()[0] == self.rhel: 
  41.             return self.rhel 
  42.         elif platform.dist()[0] == self.centos: 
  43.             return self.centos 
  44.         elif platform.uname()[1] == self.ubu: 
  45.             return self.ubu 
  46.         else
  47.             return self.unknow_linux 
  48.  
  49.     def queryOS(self): 
  50.         if platform.system() == "Darwin"
  51.             return self.osx 
  52.         elif platform.system() == "Linux"
  53.             return self.linuxType() 
  54.         elif platform.system() == self.sun: 
  55.             return self.sun 
  56.         elif platform.system() == self.fbsd: 
  57.             return self.fbsd 
  58.  
  59. def fingerprint(): 
  60.     type = OpSysType() 
  61.     print type.queryOS() 
  62.  
  63. if __name__ == "__main__"
  64.     fingerprint()