InstallShield でホスト名から IP アドレスを取得するコード
2022-01-07 07:34:37
// ファイル名:setup.rul
// スクリプト機能:ホスト名によるTCP/IPアドレスの取得
// 書かれた日付。2003-07-15
// 使い方 関数 fGetIpAddress(szHost, szIPAdress) を呼び出す。
// 執筆者 Jaron ,2002-07-15
// 投稿者 江都资讯网论坛 http://www.jiangdu.net/bbs;;
// 出所を明記の上、この著作権情報を保持してください。
// SiteManagerウェブ管理システムへようこそ http://sitemanager.cnzone.net;;
#include "Sddialog.h"。
#include "IpAddress.rul"。
STRING szIPAddress;
STRING szHostName;
BOOL nResult;
プログラム
SdShowDlgEdit1 ("", "Please enter your host name", "Host name: ", szHostName) を実行します。
nResult = fGetIpAddress(szHostName, szIPAddress)とする。
if nResult then
MessageBox ("IPアドレスは:" + szIPAddress, INFORMATION)。
エンドイフ。
エンドプログラム
#include "Sddialog.rul"。
==========================
// 文書名:IpAddress.rul
// スクリプト機能:ホスト名によるTCP/IPアドレスの取得
// 書かれた日付。2003-07-15
// 使用方法
// 1.setup.rulの前に#include "IpAddress.rul"を追加します。
// 2.関数fGetIpAddress(szHost, szIPAdress)を呼び出す。
// 執筆者 Jaron ,2002-07-15
// 投稿者 江都资讯网论坛 http://www.jiangdu.net/bbs;;
// 出所を明記の上、この著作権情報を保持してください。
// SiteManagerウェブ管理システムへようこそ http://sitemanager.cnzone.net;;
プロトタイプ NUMBER WSOCK32.WSAStartup( NUMBER, POINTER);
プロトタイプ NUMBER WSOCK32.gethostbyname(STRING);
prototype NUMBER KERNEL32.RtlMoveMemory (POINTER, NUMBER, NUMBER)。
プロトタイプ NUMBER WSOCK32.WSACleanup();
プロトタイプ fGetIpAddress(STRING, BYREF STRING);
typedef WSADATA
始める
INT wversion;
INT wHighVersion;
STRING szDescription[255];
STRING szSystemStatus[128] です。
INT iMaxSockets;
INT iMaxUdpDg;
INT lpszVendorInfo;
を終了します。
typedef HOSTENT
始める
NUMBER hName; // Longとして
NUMBER hAliases; // Longとして
SHORT hAddrType; // 整数として
SHORT hLength; // 整数として
NUMBER hAddrList; // Longとして
を終了します。
typedef IPADDRESS
始める
CHAR b1; //最初
CHAR b2; //セカンド
CHAR b3; //サード
CHAR b4; //4番目
を終了します。
function fGetIpAddress(szHost, szIPAdress)
WSADATA StructWSAData。
WSADATA POINTER pStructWSAData;
HOSTENT StructHostEnt;
HOSTENT POINTER pStructHostEnt。
NUMBER nResult;
NUMBER pHostAddress;
POINTER pHostIPAddress;
NUMBER HostIPAddressです。
IPADDRESS IpAddress;
IPADDRESS POINTER pIpAddressです。
STRING sb1、sb2、sb3、sb4。
NUMBER nStartUp;
BOOL bReturn;
始める
if szHost = "" then
FALSE を返します。
エンドイフ
if UseDLL(WINSYSDIR^"WSOCK32.DLL") < 0 then
はFALSEを返します。
エンドイフ
pStructWSAData = &StructWSAData;
pStructHostEnt = &StructHostEnt;
nStartUp = WSAStartup(0x101, pStructWSAData);
if nStartUp ! = 0 なら
は FALSE を返します。
エンドイフ
pHostAddress = gethostbyname(szHost);
if pHostAddress ! = 0 なら
RtlMoveMemory (pStructHostEnt, pHostAddress, 16);
pHostIPAddress = &HostIPAddress;
RtlMoveMemory (pHostIPAddress, StructHostEnt.hAddrList, 4)を実行します。
pIpAddress = &IpAddress;
RtlMoveMemory (pIpAddress, HostIPAddress, 4)を使用します。
NumToStr(sb1, pIpAddress->b1)。
NumToStr(sb2, pIpAddress->b2);
NumToStr(sb3, pIpAddress->b3);
NumToStr(sb4, pIpAddress->b4);
szIPAdress = sb1 + ". " + sb2 + ". " + sb3 + ". " + sb4 ;
bReturn = TRUE。
その他
bReturn = FALSE とする。
エンドイフ
if nStartUp = 0 then
WSACleanup()を実行します。
エンドイフ
UnUseDLL("WSOCK32.DLL");
bReturnを返します。
を終了します。
// スクリプト機能:ホスト名によるTCP/IPアドレスの取得
// 書かれた日付。2003-07-15
// 使い方 関数 fGetIpAddress(szHost, szIPAdress) を呼び出す。
// 執筆者 Jaron ,2002-07-15
// 投稿者 江都资讯网论坛 http://www.jiangdu.net/bbs;;
// 出所を明記の上、この著作権情報を保持してください。
// SiteManagerウェブ管理システムへようこそ http://sitemanager.cnzone.net;;
#include "Sddialog.h"。
#include "IpAddress.rul"。
STRING szIPAddress;
STRING szHostName;
BOOL nResult;
プログラム
SdShowDlgEdit1 ("", "Please enter your host name", "Host name: ", szHostName) を実行します。
nResult = fGetIpAddress(szHostName, szIPAddress)とする。
if nResult then
MessageBox ("IPアドレスは:" + szIPAddress, INFORMATION)。
エンドイフ。
エンドプログラム
#include "Sddialog.rul"。
==========================
// 文書名:IpAddress.rul
// スクリプト機能:ホスト名によるTCP/IPアドレスの取得
// 書かれた日付。2003-07-15
// 使用方法
// 1.setup.rulの前に#include "IpAddress.rul"を追加します。
// 2.関数fGetIpAddress(szHost, szIPAdress)を呼び出す。
// 執筆者 Jaron ,2002-07-15
// 投稿者 江都资讯网论坛 http://www.jiangdu.net/bbs;;
// 出所を明記の上、この著作権情報を保持してください。
// SiteManagerウェブ管理システムへようこそ http://sitemanager.cnzone.net;;
プロトタイプ NUMBER WSOCK32.WSAStartup( NUMBER, POINTER);
プロトタイプ NUMBER WSOCK32.gethostbyname(STRING);
prototype NUMBER KERNEL32.RtlMoveMemory (POINTER, NUMBER, NUMBER)。
プロトタイプ NUMBER WSOCK32.WSACleanup();
プロトタイプ fGetIpAddress(STRING, BYREF STRING);
typedef WSADATA
始める
INT wversion;
INT wHighVersion;
STRING szDescription[255];
STRING szSystemStatus[128] です。
INT iMaxSockets;
INT iMaxUdpDg;
INT lpszVendorInfo;
を終了します。
typedef HOSTENT
始める
NUMBER hName; // Longとして
NUMBER hAliases; // Longとして
SHORT hAddrType; // 整数として
SHORT hLength; // 整数として
NUMBER hAddrList; // Longとして
を終了します。
typedef IPADDRESS
始める
CHAR b1; //最初
CHAR b2; //セカンド
CHAR b3; //サード
CHAR b4; //4番目
を終了します。
function fGetIpAddress(szHost, szIPAdress)
WSADATA StructWSAData。
WSADATA POINTER pStructWSAData;
HOSTENT StructHostEnt;
HOSTENT POINTER pStructHostEnt。
NUMBER nResult;
NUMBER pHostAddress;
POINTER pHostIPAddress;
NUMBER HostIPAddressです。
IPADDRESS IpAddress;
IPADDRESS POINTER pIpAddressです。
STRING sb1、sb2、sb3、sb4。
NUMBER nStartUp;
BOOL bReturn;
始める
if szHost = "" then
FALSE を返します。
エンドイフ
if UseDLL(WINSYSDIR^"WSOCK32.DLL") < 0 then
はFALSEを返します。
エンドイフ
pStructWSAData = &StructWSAData;
pStructHostEnt = &StructHostEnt;
nStartUp = WSAStartup(0x101, pStructWSAData);
if nStartUp ! = 0 なら
は FALSE を返します。
エンドイフ
pHostAddress = gethostbyname(szHost);
if pHostAddress ! = 0 なら
RtlMoveMemory (pStructHostEnt, pHostAddress, 16);
pHostIPAddress = &HostIPAddress;
RtlMoveMemory (pHostIPAddress, StructHostEnt.hAddrList, 4)を実行します。
pIpAddress = &IpAddress;
RtlMoveMemory (pIpAddress, HostIPAddress, 4)を使用します。
NumToStr(sb1, pIpAddress->b1)。
NumToStr(sb2, pIpAddress->b2);
NumToStr(sb3, pIpAddress->b3);
NumToStr(sb4, pIpAddress->b4);
szIPAdress = sb1 + ". " + sb2 + ". " + sb3 + ". " + sb4 ;
bReturn = TRUE。
その他
bReturn = FALSE とする。
エンドイフ
if nStartUp = 0 then
WSACleanup()を実行します。
エンドイフ
UnUseDLL("WSOCK32.DLL");
bReturnを返します。
を終了します。
関連
-
期限切れのアカウントを自動的に禁止するRouterOSスクリプト
-
[解決済み】C++エラー: 予想されるunqualified-idを修正する方法
-
[解決済み】データフレームで関数を適用する場合、dim(X)は正の長さでなければならない
-
[解決済み] [Solved] PHP Fatal error: オブジェクトコンテキストでないときに$thisを使用する
-
[解決済み] 'std::out_of_range' のインスタンスを投げた後に呼び出された終了処理
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み】最新のビルドツールでも、タスク ':app:processDebugResources' の実行に失敗する。
-
[解決済み] [Solved] Inconsistent Accessibility: パラメータ型はメソッドよりアクセスしにくい
-
linux シェル学習ノート 3日目
-
linux シェル学習ノート 1日目
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スクリプトとバッチ処理がひとつに
-
スプレッドシートに匹敵するオンライングリッドシステム。EditGrid
-
[解決済み】ValueError: shape mismatch: オブジェクトを1つの形状にブロードキャストできない
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない。
-
[解決済み] エラー: '...'のメンバー '...'が非クラス型である場合のリクエスト
-
[解決済み】ssh: ホスト 'ホスト名' の真正性を確立することができない
-
[解決済み】fatal error: Python.h: そのようなファイルやディレクトリはありません
-
[解決済み】演算子のオーバーロード時のエラー(非静的メンバ関数でなければならない)
-
[解決済み】エラー: 'const ...' を '...' の 'this' 引数として渡すと、修飾子が破棄される
-
python startup prompt IDLEのサブプロセスが接続できない問題が発生しました。