veyonで問題となるのは、生徒端末の登録です
アドインを使えば、ネットワークをスキャンして自動で登録できますが費用が掛かります
前回は、生徒パソコンでsendpcinfo.exeを動かして先生端末で受け取って情報をCSVに登録し、veyonに組み込みました
両方で動かさなければならないのが手間です。
アドインは先生で動かすのですから、似たようなことができないか考えてみました
veyonのソースコードを調べてみました
veyon serviceはポート11100を使っているようです
生徒パソコンのポート11100が開いているようですので、pythonでアプリを作りcsvに端末情報を登録してみました
これで先生だけでアプリを動かせばいいようになります
python scan.py 場所 IP開始 IP終了
サブネットは192.168.1になっておりますので違うサブネットの時は修正してください
client.csvが作られました
addcomputer.batを管理者権限で実行すればveyonに組み込めます
scan.py
#
# veyon client scan
# useage python サイト名 IP開始 IP終了
# output client.csv
# veyon組み込み addcomputer.batを管理者権限で実行
#
import socket
import sys
args = sys.argv
site =args[1] #サイト
start=int(args[2]) #開始
end =int(args[3]) #終了
port = 11100 #veyon port
subnet="192.168.1." #サブネット
out=open("client.csv", "w")
for ip in range(start, end):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
return_code = sock.connect_ex((subnet+str(ip), port))
print("scan.."+str(ip))
sock.close()
if return_code == 0:
t=subnet+str(ip)
hostname=socket.gethostbyaddr(t)[0]
print("computer;"+hostname+";"+t+";"+site,file=out)
addcomputer.bat
@echo off
rem
rem This command uses on administrator mode
rem
rem to execute in command prompt but clidk this bat to avoid client.csv path missing
cls
echo ---------------------------------
echo veyon設定 (2)
echo ----------------------------------
echo (1)クライアントIPアドレス取得
echo (2)クライアントをveyonに登録します
echo .
echo 注意:右クリックで管理者として実行してください
echo -----------------------------------
set curdir=%~dp0
echo %curdir%
for /f %%a in ("%curdir%location.txt") do (
set location=%%a
)
"C:\Program Files\Veyon\veyon-cli" networkobjects clear
"C:\Program Files\Veyon\veyon-cli" networkobjects add location %location%
"C:\Program Files\Veyon\veyon-cli" networkobjects import "%curdir%client.csv" format "%%type%%;%%name%%;%%host%%;%%location%%"
"C:\Program Files\Veyon\veyon-cli" networkobjects list
pause
veyon 4.9.6.1対応マニュアル更新しました
各種ファイルも入っています


