HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0829
玄冬ローカルIPの設定をHSPから変更したい3未解決


玄冬

リンク

2014/8/29(Fri) 13:04:40|NO.64447

A部門 192.168.0.1
B部門 192.168.1.1
となっているローカルIPを自動で切り替えるツールを作りたいと思い、
下記のようなスクリプトを書いたのですが、f_set_IP命令に何を
書いたらよいのか、よくわかりません。
ご助言よろしくお願いいたします。


#module #deffunc f_get_IP array p_IP ;IPを取得する命令 return #deffunc f_set_IP array p_IP ;IPを設定する命令 return #global screen 0, 300, 100 title "ローカルIP変更ツール" dim a_IP, 4 ;IPを4つに分けて格納 f_get_IP a_IP ;IP入手 gosub *sub_view ;表示 pos 10,45 button gosub "切り替え", *sub_change_IP stop *sub_change_IP ;IP切り替え a_IP(2) ^= 1 ;値を切り替え f_set_IP a_IP ;値を反映 gosub *sub_view ;表示 return *sub_view ;表示 color $FF, $FF, $FF : boxf font msmincho, 15, 0 : color $00, $00, $00 : pos 0, 5 if a_IP(2) > 0 : mes "現在、B用に設定されています。\n切り替えますか?\n" : else : mes "現在、A用に設定されています。\n切り替えますか?\n" return



この記事に返信する


SOU1

リンク

2014/9/1(Mon) 14:37:04|NO.64588

幾つかやり方はあるようですがどれも結構面倒です。
一番楽そうなのはnetsh interfaceコマンドをexec等で叩くやり方ですが、
必ず「インターフェース名」が必要になる、という部分がキモになります。
ノートPCなど標準の状態で「複数のネットワークインターフェースが存在する」場合に
「どのインターフェースのIPを設定するか」という事になります。

ごく簡単に実装するのであれば、
netsh interface show
等で予め一覧を取得しておき、その中から
「ローカル」や「イーサネット」で洗い出しておくか、
IPを先に取得して「もしこのIPになっているインターフェースであれば」という条件書式で設定すれば
事故を防げます。

netshのヘルプについてはコマンドプロンプトで
netsh ?
と入力して確認して下さい。



玄冬

リンク

2014/9/7(Sun) 18:03:31|NO.64738

返信が遅くなり申し訳ありません
> SOU1様
ご回答ありがとうございます。

アドバイスに従い、pipeexecからnetshをコマンドに送ってみましたが、管理権限が無いと
はねられました(もちろん管理者アカウントから実行しています。)

hspからコマンドラインを管理者権限で実行できないかrunusも試してみましたが、
IPの変更にはたどり着けませんでした。

アダプタの特定に関しては、接続名が「ローカル…」に統一されているので、
考えていませんでしたが、IPによる特定は目から鱗でした。
活用させていただきたいと思います。

自分の投稿を読み直していて、少し状況説明がおおざっぱすぎたような気がするので補足を


30名くらいの職場のPCです。OSはすべてwindows7pro。
自分だけなら手動でどうにでもなるんですが、この手の操作の苦手な職員が多く
変更の度に呼ばれるのが煩わしくなってツールを作る気になったのですが、
意外とハードルが高く困っています。

ちなみに他の職員のスキルレベルは、最悪オフィスすら使いこなせない者もいるので
「batchファイル配布するから、管理者権限で実行してくれ」では通らない気がします。
しかもバッチだと30人分作って(まぁそれこそ自動でできますが)、配らなきゃいけない上に
SEが気まぐれでLANの設定変えたら、作り直さなきゃならないのでもう少し有用なものを作りたいです。



SOU1

リンク

2014/9/10(Wed) 14:57:08|NO.64804

同じような境遇に同情して必要と思われる情報を記載しますが、
ここまでマニアックな事をすると最悪管理者に見咎められたり
塞がれたりする可能性がある事を御了承下さい。

BatchGotAdmin
https://sites.google.com/site/eneerge/scripts/batchgotadmin

この凶悪なバッチを使えばその場で管理者権限昇格が可能です。
バッチファイル内でIPが固有でなければいけない問題に関しては
「HSPからbatを書き出し」->「bat実行」->「bat削除」の流れで良いかと思います。

ちなみにもうお分かりかもしれませんが
batやWSHでやるほうが若干楽かもしれません。
ただしHSPのコーディングの楽さは好きなので敢えて「可能ですよ」と言う為のヒントに。

またこの程度の操作であればHSP側はhsp3clのほうが良いかと思います。
(全てがコマンドプロンプト内で完結出来る為)
お試し下さい。



ONION software Copyright 1997-2023(c) All rights reserved.