ここのページに従って指定した呼び出しを使用して、no-ip.com の IP アドレスを更新しようとしています http://www.noip.com/integrate/request
これまで試した
Dim webAddress As String = "http://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.testdomain.com&myip=1.2.3.4"
Process.Start(webAddress)
これによりエラーが発生します 追加情報: 指定されたファイルが見つかりません
私はこれを試しました
Dim req As System.Net.WebRequest = System.Net.WebRequest.Create("http://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.testdomain.com&myip=1.2.3.4")
Dim resp As System.Net.WebResponse = req.GetResponse
Str = resp.GetResponseStream
エラーが表示されます 追加情報: 無効な URI: 無効なポートが指定されました。
また、WebBrowserを使用してみました
WebBrowser1.navigate("http://username:password@dynupdate.no-ip.com/nic/update?hostname=mytest.testdomain.com&myip=1.2.3.4")
エラーが発生します 追加情報: 値が期待される範囲内にありません。
リンクの形式が気に入らないこれらのコントロールに関連している可能性があると思います
ところで、私は no-ip 独自のクライアント ip updater を使用したくありません。もちろん、リンクの詳細を変更しました :) Chrome でリンクをコピーして貼り付けると、正常に動作し、ip が期待どおりに変更されます
更新 これで問題なく動作します
Dim username As String = HttpUtility.UrlEncode("XXX@XXX.XXX")
Dim password As String = HttpUtility.UrlEncode("XXX")
Dim query As String = String.Format("http://{0}:{1}@dynupdate.no-ip.com/nic/update?hostname=XXXXXX.ddns.net&myip=" & TextBox2.Text, username, password)
Process.Start(query)
しかし、理想的には、ブラウズを開かずにコードでリクエストとレスポンスを処理したいと思います(エラーが発生する理由を確認するためにこれを試しただけですが、理想的な解決策ではありません)
これを試すと
WebBrowser1.Navigate(query)
それは正常に動作し、今のところは問題ありませんが、このコードを使用するとエラーが発生します。
Dim req As System.Net.WebRequest = System.Net.WebRequest.Create(query)
Dim resp As System.Net.WebResponse = req.GetResponse
Str = resp.GetResponseStream
今回はエラー 401 Unauthorized が表示されます