Herkese merhaba. Bir kaç gündür telefondan bilgisayarı kontrol etmek ile ilgili çalışmalar yapıyorum. Şimdilik istediğim prototipi oluşturdum fakat programın ne kadar sağlıklı olduğu hakkında hiç bir fikrim yok. Çünkü kodlarda da gördüğünüz gibi her işlem if-elif ile yapılıyor. Aklıma başka bir yöntem gelmediği için böyle basit bir yol seçtim.
Server kodları:
import http.server
import socketserver
import socket
import sys
HOST = socket.gethostbyname(socket.gethostname())
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("Local IP:", HOST)
print("Port:", PORT)
plus1 = 1
sys.stderr = open('log.txt', 'w', plus1)
httpd.serve_forever()
Telefondan gelen komutlara cevap vermek için yazdığım script:
import os
import webbrowser
f = open('log.txt', 'r')
lines = f.read().splitlines()
last_line = lines[-1]
while 1:
f = open('log.txt', 'r')
lines = f.read().splitlines()
last_line = lines[-1]
for i in last_line.split():
if i == '/index.html?command=shutdown':
print(last_line)
os.system('shutdown -s')
f = open('log.txt', 'w')
f.write('192.168.1.134 - - [13/Nov/2018 02:50:58] "GET /index.html?command= HTTP/1.1" 200 -')
elif i == '/index.html?command=shutdown+cancel':
print(last_line)
os.system('shutdown -a')
f = open('log.txt', 'w')
f.write('192.168.1.134 - - [13/Nov/2018 02:50:58] "GET /index.html?command= HTTP/1.1" 200 -')
elif i == '/index.html?command=open+browser':
print(last_line)
webbrowser.open('http://google.com')
f = open('log.txt', 'w')
f.write('192.168.1.134 - - [13/Nov/2018 02:50:58] "GET /index.html?command= HTTP/1.1" 200 -')
index.html
<!DOCTYPE html>
<html>
<body>
<h2>Command</h2>
<form action="index.html">
> <input type="text" name="command">
<br><br>
> <input type="submit" value="OK">
</form>
</body>
</html>
Kodlar kısa ve basit ama ben yine de açıklayayım. Server.py dosyasını çaltıştırdıktan sonra konsol ekranına yazılan local ip ile port’u telefonun tarayıcısına yazıyoruz. Örnek 192.168.1.134:8000
Burada bizi index.html dosyası karşılıyor. Şimdi ikinci scripti çalıştırabiliriz. İkinci scripti de çalıştırdıktan sonra örnek olması açısından yazdığım komutları telefondaki input’a girip enter’a bastığımızda if kodlarının altındaki komutlar devreye giriyor. Böylece telefondan girdiğimiz komut ile bilgisayara işlemler yaptırabiliyoruz.
Not: Tüm dosyaların aynı klasörde olması gerekiyor.
Bir şeyleri açıklamak konusunda pek iyi değilim. Muhtemelen yazıyı okuyunca anlamışsınızdır bunu. Sorularınıza elimden geldiğince cevap vermeye çalışacağım.