VBSにてDNSサーバなどアドレス抽出

このQ&Aのポイント
  • VBSを使用して、テキストファイルからDNSやWINSサーバのアドレスを抽出する方法について教えてください。
  • DNSやWINSのブライマリは一行で抽出されますが、セカンダリが複数行存在する場合、どのように抽出すればいいでしょうか。
  • 存在しない場合や一行存在する場合でも、すべてのセカンダリを抽出する方法を教えてください。
回答を見る
  • ベストアンサー

VBSにてDNSサーバなどアドレス抽出

すいませんが、以下の方法がわかりませんでしたのでご教示ください。 それぞれのテキストファイルにはPCのDNSやWINSサーバのアドレスを記述しています。 テキストファイルを一行ずつ読み込まして、テキスト内に記述しているDNSやWINSサーバのデータを抽出しようとしています。 DNSやWINSのブライマリは一行なので、抽出条件(IF文)で該当した行を出力させていますが、 セカンダリは存在しない場合、一行存在する場合、複数行存在する場合とまちまちで困っております。 例えば、一行ずつ読み込ましているデータの中に、「DNSセカンダリ」という文字があれば、instr関数を使用してその行を取得しています。 ただ複数DNSセカンダリを設定している場合は、次の行も取得しなければいけません。 次の行には「DNSセカンダリ」という文字がないので、抽出対象とできませんが、どうすれば複数行あったときでも抽出させることができるでしょうか。

  • craftx
  • お礼率48% (388/806)

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

ファイルを作る人の、ファイル設計がまずいと思いますがね。 そのファイルの中のデータレコードには DNS WINS の二種類しか、(中身的に)ないなら、 DNSは識別文字で識別する。 プライマリは識別文字列がレコードに含まれているのか。はっきりしない。 在ればそれで識別する。無ければDNSが無ければWINSの情報と看做す。 セカンダリはWINS出現した(と判定した)ときフラグを立てて、そのフラグがONの間はWINSと看做す。 次にDSNが出現したら、フラグをONにする。 結局DNSで無ければWINSとする。プライマリ、セカンダリは順番を数える変数で対処する。 ーー 全く当てづっぽうのロジックなのだが、これでは(何処が)ダメか、書いて見て。 そしてレコードの模擬実例数例も(例も書かないで質問しても正確に伝わらないことを知っておいて)

craftx
質問者

お礼

皆様ありがとうございます。解決いたしました。

その他の回答 (1)

回答No.1

そのテキストファイルのフォーマット仕様を説明しないと 誰も回答できないと思います。 (セカンダリDNSには「DNSセカンダリ」という文字がある ようだが、ではプライマリDNSには「DNSプライマリ」という 文字があるのか? WINSの方はどうなっているのか?等々) それと、どのように抽出しようとしているのかも さっぱりわかりません。 (プライマリだけ抽出したいのか?セカンダリも含めて 抽出したいのか?セカンダリも含めて抽出したいなら、 全て読み込むのとどう違うのか?違うなら、どのような 形で抽出したいのか?) これらを補足して、現在のソースコードを示せば 誰かがアドバイスくれると思います。

craftx
質問者

お礼

テキストファイルはIPアドレスやDNSサーバやデフォルトゲートウェイなど ipconfig/allでとれるものが入力されています。 様々なパソコンから取得しているので、データはばらばらです。 ある項目はDNSだとプライマリDNS、セカンダリDNSです。 抽出は一行ずつreadlineで読み込ませて、 IF文で文字検索させています。 抽出したいのはテキストファイルにあるプライマリ、セカンダリすべてです。 ない場合はCSV形式にしたいので、カンマです。

関連するQ&A

  • VBS 以下の可変テキストから値を抽出

    複数の端末からアカウント情報とユーザ名をテキストに出力しています。 そのアカウント情報から、ユーザが所属しているグループを抽出する必要があります。 以下のような形の形式でテキストには出力されています。 ・テキストの内容は一行ずつでも全行まとめてでも呼び出せる(alllineは全行格納、lineは一行ずつループで読み取る) ・内容はそれぞれの端末で可変 ・複数所属している場合もある ・テキストからユーザの所属グループのみを出力する たとえば以下のテキストからNakayamaの所属グループであるAdministrators: とUsersを抽出したい場合ですが、 InstrでInstr(allline, nakayama)探しだし、その場所の文字数を特定することはできます。 ですがそこからどうやってAdministratorsのみを取得すればよいのでしょうか。 思いついたのは指定のユーザを検索して、 ユーザをキーにそれより上に:がある行を特定しその行を抽出して、 Replaseで:を消してやればいいと思うのですが、 そのようなことはできるのでしょうか。 他の方法でもありましたらご教示ください。 テキストのアカウント情報サンプル ▲アカウント Administrators: Administrator Nakayama Kimura DomainUser Backup Operators: Guest: Users: Kitagawa Maruyama Nakayama PowerUser:

  • 複数のDNSサーバーを立てるには

    好きなドメインを取得し、独自のプライマリDNSをたてる時の話でわからないことがあります。 Whois情報のDNSサーバーの記入欄にセカンダリDNSをプロバイダの指定するホスト(セカンダリDNS)を記述して下さいと、よく書かれていますが プライマリDNSの設定は自分自身で行うものの、セカンダリDNSの具体的な設定は何もしなくても、セカンダリDNSとして機能するものなのでしょうか? セカンダリDNSの概念がわからず、たとえば2-4つのDNSをたてている有名なサイトを見かけますが、セカンダリDNS,サードDNS,フォースDNSはどのように設定を行っているのでしょうか?プライマリのようにAレコード等を設定するのでしょうか? セカンダリDNSなど複数のDNSを立てる際の詳しいサイトや本を探しております。

  • DNSサーバについて

    ある資格取得向けのテキストで 『DNSサーバは、ネットワーク内に原則2つ設けられます』 という風に記述されていました。 ここでいう”2つ”とは ・DNSクライアントとして再帰検索をするための、ユーザとしては直接アクセスするサーバ ・ルートサーバを含むそのほかのサーバ と考えたほうがよいのでしょうか? それとも、 ・ルートサーバ ・ルートサーバ以下のDNSサーバと考えればよいのでしょうか? 調べるほどややこしくなってきてしまったので、もしよろしけれご回答お願いしますm(__)m

  • このDNSサーバーはどこが運営しているのですか?

    DNS1(プライマリ) 59.190.146.81 (自動取得) DNS2(セカンダリ) 59.190.147.17 (自動取得) このサーバーの運営主体を教えて下さい。 サーバーの設定状態を開いたら登録されていたアドレスです。

  • VBS初歩的質問

    すいません、色々調べましたが以下のことが思いつきませんのでご教示ください。 テキストファイルを一行ずつ読み込まして、文字列を検索するところまではできました。 文字列の検索は一行ずつ読み込ましたタイミングで、IF文で行っています。 そのテキストファイル内に同じ語句のものがある場合、始めのものだけを取得したい場合どうすればよいでしょうか。 一行ずつ読み込ましている関係上、2回IF文の条件にひっかかります。 具体例(上から5行あり1行目と4行目でIF文に入り、抽出してしまう) abc d e abc f

  • 外部DNSサーバについて

    現在社内では、DMZに置いている外部DNSサーバがプライマリで、 プロバイダにある外部DNSサーバがセカンダリで運用しております。 そろそろリプレースの時期なのですが、最近の流れとしまして外部DNS サーバは以下のうちどちらが良いでしょうか? (1)プライマリ、セカンダリともにプロバイダの外部DNSサーバにする (2)プライマリを自社、セカンダリをプロバイダの外部DNSサーバにする また、自社でDMZに外部DNSを設置する場合は通常BINDになります でしょうか? DMZにあるのがWindowsなので、WindowsのDNSサーバでもよいかどうか 迷っております。

  • DNSのマスターサーバについて

    現在、ドメインを取得して固定グローバルIPで接続していますがDNSはプロバイダーで立ててもらっているので必要ないのですが、勉強を兼ねて自宅サーバでもDNSを立ち上げたいと考えています。 初歩的な質問で恐縮ですが、単一ドメイン内にDNSのマスターサーバは複数存在可能なのでしょうか? よろしくお願いします。

  • グローバルIPアドレスとDNSサーバの設定について

    グローバルIPアドレスとDNSサーバの設定について 私は学生です。先日、ネットワークとサーバの勉強をしようと思い、業者AからグローバルIPアドレスを取得しました。そこでサーバにapacheをインストールして設定しました。また業者Bからドメイン名○○.infoを取得しました。 (1)スマートフォンからhttp://登録したグローバルIPアドレス とうつと、apacheで確かに設定した画面になります。 つぎに、DNSサーバを公開しようと思い、bindをインストールして設定し、○○.infoと取得したグローバルIPアドレスを設定しました。さらに業者BのDNSサーバをセカンダリサーバに設定しました。 (2)この段階で dig ○○.info とすると業者Bのセカンダリーサーバが確かに確認できます。 (3)しかし、http://○○.info とうつと業者Bのそのドメイン名は登録済みです という画面が現れ(1)と同じ画面が出ません。 なぜ、(1)と(3)で同じものにならないのでしょうか?どなたか教えていただけませんか?

  • セカンダリDNSのNSレコードの動作がわからなくて困ってます。

    DNSサーバについての質問です。或るドメインに対して、以下の設定がされている状態で、プライマリDNSサーバが障害にあった場合、名前解決について何か支障がでるのでしょうか?また、支障が出るとすればどういった症状になるのでしょうか。  ・レジストラにはプライマリ、セカンダリDNSサーバをそれぞれ登録しています。  ・プライマリDNSサーバの、ゾーンファイルのNSレコードには、セカンダリDNSサーバの記述がありません。  ・セカンダリDNSサーバのnamed.confには、プライマリDNSサーバのIPアドレスが記述されています。 つまり、セカンダリDNSサーバには、プライマリDNSサーバからのゾーンファイル転送によって、自身のNSレコードを含まないゾーンファイルが存在しています。 レジストラには登録されているので、問題なく名前解決ができるのではと思っているのですが・・・。 すみません、いまいちNSレコードの役割がわかっていません。 ご教授よろしくお願いします。

  • DNSサーバー構築

    RedHat7にてDNSサーバ構築していますが、 独自ドメイン取得し、マニュアル通りに構築していますが、マニュアル通りにしていますが上手にいきません。 <問題状況> ○nslookupにて”192.168.0.2サーバがみつかりません” <現サーバ機等の設定環境> ・ルーターIPを192.168.0.1 、サーバIPを192.168.0.2、ネットワークIP(サブネット)を 192.168.0.0に設定しています。 ・ルーターのプライマリIPは192.168.0.1 ・DHCPはルーターで設定、サーバでのDHCP設定はしていない。 <疑問> ○JPNIC登録プライマリDNSサーバのホスト名とサーバ用ホスト名の記述場所は? ○セカンダリはISPのサーバー名とIPは? (IPSから配布されたたメールアドレスの記述でよいのか、IPは?)

専門家に質問してみよう