[前の記事]« [NT4]環境変数の指定部分を別の環境変数で置換する方法
[次の記事]フォルダ内にあるフォルダ数を表示させる方法 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「FOR .. IN ( ) DO..」索引へ
▲カテゴリー「文字列の操作」索引へ

ホスト名からIPアドレスを取得してファイルに記録したい

739.
ホスト名からIP取得
2005年09月14日(水) 21時51分
ドッジ
●DOS/Windowsのバージョン↓
WindowsXP

DDNSのホスト名(***.or.jp)からIPアドレスを取得して既存のファイルに
111.222.333.444 コメント
の様に追加することは可能でしょうか?
743.
Re:ホスト名からIP取得
2005年09月15日(木) 20時55分
otn
>>●DOS/Windowsのバージョン↓
>>WindowsXP
>>
>>DDNSのホスト名(***.or.jp)からIPアドレスを取得して既存のファイルに
>>111.222.333.444 コメント
>>の様に追加することは可能でしょうか?
>
>echo on
>ren hosts hosts1
>type hosts1 | find /v "aaaa.jp" >hosts3
>
>ping rau.or.tp > tp1.txt
>type tp1.txt | find "Ping statistics" > tp2.txt
>
>for /f "delims=" %%A in (tp2.txt) do call :sub "%%A"
>goto :eof
>:sub
>set STR=%~1
>set STR=%STR:Ping statistics for =%
>set STR=%STR::=%
>
>echo.%STR%>>tp3.txt
>
>の様な感じで戻すファイルhosts3とIP***.***.***.***までは取得できたのですが、書き込み方と書き込むときに
>IPの後ろに_aaa.jpと付け足す方法が未だ解りません
>どなたか助けてください^^;

最初の質問でもやりたいことがよくわからなかったのですが、2回目の質問でますますわからなくなりました。

与えられる情報は何と何で、結果としてどういうファイルが欲しいのでしょう?
744.
Re:ホスト名からIP取得
2005年09月15日(木) 22時04分
ドッジ
hostsファイルを用いてサーバーに接続するのですが
DDNS接続にしたい為***.or.tpの様なホストアドレス
が提供されます
hostsファイルはIP+サーバー名になる為ホストアドレス
からIPを自動で引っ張りhostsに書き込むbatを作りたいのですが。
pingコマンドからIPの***.***.***.***だけを抽出することは出来たのですが(tp3.txt)これをhostsファイルに書き込むときにIPのうしろにスペースを入れてaaa.jpという文字を入れて
***.***.***.***  aaa.jp
と言う形で戻したいのです。
tp.txt
192.168.1.1

d.txt
aaa,jp

作りたいファイル
hosts
192.168.1.1 aaa.jp
745.
Re:ホスト名からIP取得
2005年09月16日(金) 01時01分
cstlog
>hostsファイルを用いてサーバーに接続するのですが
>DDNS接続にしたい為***.or.tpの様なホストアドレス
>が提供されます
>hostsファイルはIP+サーバー名になる為ホストアドレス
>からIPを自動で引っ張りhostsに書き込むbatを作りたいのですが。
>pingコマンドからIPの***.***.***.***だけを抽出することは出来たのですが(tp3.txt)これをhostsファイルに書き込むときにIPのうしろにスペースを入れてaaa.jpという文字を入れて
>***.***.***.***  aaa.jp
>と言う形で戻したいのです。
>tp.txt
>192.168.1.1
>
>d.txt
>aaa,jp
>
>作りたいファイル
>hosts
>192.168.1.1 aaa.jp
>

途中経過はいいとして、otnさんがおっしゃっていたように、
最初にどのような値が存在し、どのような結果を求めたいのか
申し訳ないですが、よく分かりません。

こちらで読んだ限り、登場人物は以下だと思います。
DDNSのホスト名
 ***.or.jp

元々のhostsファイル中の文字列
 111.222.333.444    aaa.jp

DDNSのホスト名から求めたIPアドレス
 192.168.1.1

で、これをどうなされたいのでしょうか?
1)192.168.1.1      aaa.jp
2)111.222.333.444  ***.or.jp

1)の結果ですか?それとも2)の結果ですか?
746.
Re:ホスト名からIP取得
2005年09月16日(金) 10時01分
ドッジ
>途中経過はいいとして、otnさんがおっしゃっていたように、
>最初にどのような値が存在し、どのような結果を求めたいのか
>申し訳ないですが、よく分かりません。
>
>こちらで読んだ限り、登場人物は以下だと思います。
>DDNSのホスト名
> ***.or.jp
>
>元々のhostsファイル中の文字列
> 111.222.333.444    aaa.jp
>
>DDNSのホスト名から求めたIPアドレス
> 192.168.1.1
>
>で、これをどうなされたいのでしょうか?
>1)192.168.1.1      aaa.jp
>2)111.222.333.444  ***.or.jp
>
>1)の結果ですか?それとも2)の結果ですか?
>
1)の値をhostsから削除して2)の値をファイルに挿入
したいのですが説明が下手で申し訳ありませんでした。
748.
Re:ホスト名からIP取得
2005年09月16日(金) 11時10分
イルカ
ドッジさん、イルカです。

 SED ストリームエディタを使うと楽かも。

>sed -e "s/^\([0-9]*\.[0-9]*\.[0-9]*\) \(.*\)$/123.453 \2
/" test.txt > hosts

windows sed - Google 検索
http://www.google.co.jp/search?hl=ja&q=windows+sed&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
749.
Re:ホスト名からIP取得
2005年09月16日(金) 11時35分
イルカ
イルカです。

テスト結果
C:\Documents and Settings\Owner>sed -e "s/^\([0-9]*\.[0-9]*\) \(.*\)$/123.453 \2
/"
123.123 local.host    入力値
123.453 local.host    出力値

 わたしは、CYGWIN版のSEDですが、SEDには色々種類があります。マイクロソフトから配布されているものもありますが、XP proでないと使えないと思われます。
 窓の杜 - 【Release NEWS】米Microsoft、「Windows Services for UNIX」v3.5をフリーソフトとして公開

 なお、わたしは慣れているPerlを使いますので、SEDは知識以上のことは知りません。(パターンマッチが少し異なる)
 詳しくは「sedは日暮れて」SED Lectureをご覧ください。
 とにかく早いです。ステップとしては
(1) hosts[ C:\WINDOWS\system32\drivers/etc/hosts ]を適当な名前でコピー
(2) ip.txt をsedで読んで変数に
(3) sedで、(1)のファイルを読み込んでhostsを上書き

# Copyright (c) 1993-1999 Microsoft Corp.
#
# ****略******
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

192.168.1.152 HP000D9D09EA87
127.0.0.1 ****.local urban.ne.jp.local homepage1.nifty.com.local hpcgi1.nifty.com.local
165.23.345 my.com
178.345.24 test.com

 のmy.comの行だけ書き換えるときも
sed -e "s/^\([0-9]*\.[0-9]*\) \(my\.com\)$/$IN \2

 とかで・・


____________イルカ_________________
 [理科]小中高生の理科質問箱 ・ [日常]日常の科学
【理科父母】 ・ 【自由研究】質問箱
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

個人(@nifty)
751.
Re:ホスト名からIP取得
2005年09月16日(金) 13時21分
otn
746番の発言で余計わからなくなったので、とりあえずこちらに回答します。

>tp.txt
>192.168.1.1
>
>d.txt
>aaa,jp
>
>作りたいファイル
>hosts
>192.168.1.1 aaa.jp

最初のスクリプトで作ったhosts3を使って、

for /f %%A in (tp.txt) do for /f %%B in (d.txt) do echo %%A %%B>hosts2
copy /b hosts3+hosts2 hosts

あと、pingからIPアドレスを求めるのはもっと簡単にできますが、今回は省略。
753.
Re:ホスト名からIP取得
2005年09月16日(金) 17時13分
ドッジ
皆さん有難うございました
for文で無事取れました。
使い勝手もなかなか便利で満足しています。

解り辛い説明の中お付き合い頂いて本当に有難うございました
 

739.ホスト名からIP取得 ドッジ 05/09/14(水) 21:51
741.(削除されました)
743.Re:ホスト名からIP取得 otn 05/09/15(木) 20:55
744.Re:ホスト名からIP取得 ドッジ 05/09/15(木) 22:04
745.Re:ホスト名からIP取得 cstlog 05/09/16(金) 01:01
746.Re:ホスト名からIP取得 ドッジ 05/09/16(金) 10:01
748.Re:ホスト名からIP取得 イルカ 05/09/16(金) 11:10
749.Re:ホスト名からIP取得 イルカ 05/09/16(金) 11:35
751.Re:ホスト名からIP取得 otn 05/09/16(金) 13:21
753.Re:ホスト名からIP取得 ドッジ 05/09/16(金) 17:13
 
 


カテゴリー「FOR .. IN ( ) DO..」索引へ
カテゴリー「文字列の操作」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2005年09月14日 11:31に投稿されたエントリーのページです。

ひとつ前の投稿は「[NT4]環境変数の指定部分を別の環境変数で置換する方法」です。

次の投稿は「フォルダ内にあるフォルダ数を表示させる方法」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート