본문 바로가기
컴퓨터

Ruby 와 WQL를 이용해 시스템 정보 획득하기

by 촐초리 2015. 5. 28.
반응형

윈도에만 해당 되는이야기이긴 하지만

함수를 만들때 윈도의 경우는 약간은 특이하다

OS 정보를 획득해서 32bit 64bit 정보를 획득하려해도 64bit 상태에서 32bit Ruby를 설치한 경우에는 OS 정보를 직접 가져오지 않으면 엉뚱한결과가 나온다 이때는 윈도 시스템 정보를 직접 가져와야 하는데

http://cholchori.tistory.com/1338

에 쓴 WQL 를 이용해서 정보를 획득 할수 있다


require 'win32ole'

wmi = WIN32OLE.connect("winmgmts://") 

os =  wmi.ExecQuery("select * from Win32_Operatingsystem")

for os in os do

puts "#{os.osarchitecture}"

puts "#{os.name}"

end


이렇게 하면

OS 아키텍처 정보와 OS 이름 정보를  획득할 수있다

WQL를 이용해서 네트웍 cpu 등 각종 정보를 이용해서 프로그램을 만드는 것이 가능하다


require 'win32ole'

wmi = WIN32OLE.connect("winmgmts://")

process = wmi.ExecQuery("select * from win32_process")


for process in process do

    puts "Name: #{process.Name}"    

    puts "CreationDate: #{process.CreationDate}"

    puts "WorkingSetSize: #{process.WorkingSetSize}"

end


이렇게 하면 현재 실행중이 프로세서 정보와 다른 정보를이 우르르 나온다

안타까운점은 윈도에서만 사용이 가능하다는 것이다
범용 프로그램을 만들때 linux와 맥은 유사하지만 윈도는 특이한 시스템이라 이런식으로라도 정보를 획득하자


반응형