hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
小ワザ/グローバルIP取得 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

小ワザ

自分のグローバルIP表示

ここさんの応答ページを参考にしています。

スクリプト

  • HSPsock用
    Everything is expanded.Everything is shortened.
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
    
     
     
     
     
     
     
     
     
     
     
     
     
     
    -
    |
    !
     
     
    -
    |
    !
     
     
     
     
     
     
     
     
     
    -
    |
    !
     
    -
    |
    |
    |
    !
     
     
     
     
     
     
    -
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    -
    |
    |
    !
     
     
     
     
     
    
    #module
    #include "hspsock.as"
    #define global urlHTTP                "checkip.dyndns.org"            // 接続URL
    #define global fileHTTP                "/"                                // 接続ファイル
    #define global portHTTP                80                                // ポート
    #define global timeHTTP                1000                            // タイムアウト用
    #define global sizeHTTP                1024                            // パケットサイズ
    #define global tagHTTP                "body"                            // 読み出し前タグ
    #define global keywordHTTP            "Current IP Address:"            // 読み出し前キーワード
     
    #defcfunc getIP
        /*ソケット生成*/
        sockopen 0, urlHTTP, portHTTP
        if (stat != 0) {
            dialog "接続エラーです", 1, "エラー" : stop
        }
        /*パケット送信(GETメソッド)*/
        sockput "GET "+fileHTTP+" HTTP/1.0\nHost:???\nUser-Agent:???\n\n"
        if (stat != 0) {
            dialog "送信エラーです", 1, "エラー" : stop
        }
        /*変数初期化*/
        dim flg, 1
        dim size, 1
        dim p, 1
        sdim buf, sizeHTTP, 2
        /*取得ループ*/
        repeat timeHTTP
            /*パケット取得部分*/
            sockget buf(0), sizeHTTP
            if (stat != 0) {
                dialog "('A`)", 1, "エラー" : stop
            }
            /*内容確認*/
            if (peek(buf(0), 0) == 0) {
                /*受信終了したなら*/
                : flg = 1
                break
            }
            : buf(1) = buf(1)+buf(0)
            await 100
        loop
        /*ソケット解放*/
        sockclose 0
        /*フラグ判定*/
        if (flg != 0) {
            /*受信成功したなら*/
            /*パケットのヘッダから*/
            : p = instr(buf(1), 0, "\n\n")
            : buf(1) = strmid(buf(1), p, strlen(buf(1)))
            : p = instr(buf(1), 0, "<"+tagHTTP+">")
            : buf(1) = strmid(buf(1), p+strlen(tagHTTP)+2, strlen(buf(1)))
            : p = instr(buf(1), 0, "</"+tagHTTP+">")
            : buf(1) = strmid(buf(1), 0, p)
            : p = instr(buf(1), 0, ""+keywordHTTP+"")
            : buf(1) = strmid(buf(1), p+strlen(keywordHTTP), strlen(buf(1)))
        } else {
            /*受信失敗したなら*/
            : buf(1) = ""
        }
    return buf(1)
     
    #global
     
    mes getIP()
  • PCBnet2用
    Everything is expanded.Everything is shortened.
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    -
    |
    !
     
     
    -
    |
    !
     
     
     
     
    -
    |
    !
     
     
     
     
    -
    |
    |
    |
    |
    |
    !
     
     
     
     
     
    -
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    -
    |
    |
    !
     
     
     
     
     
     
    
    #module
    #include "pcbnet2.as"
    //
    // ネットワーク初期化
    //
    // p1 = ID
    #deffunc NetworkInit
        netinit
    return
    //
    // グローバルIP取得
    //
    // stat = IP
    #defcfunc NetworkGetIP str p1, int p2, str p3, str p4, str p5
        /*変数初期化*/
        dim flg, 1
        dim size, 1
        dim p, 1
        sdim buf, 1024, 2
        /*ソケット生成*/
        TcpOpen _gPID_, p1, p2
        if (stat != 0) {
            dialog "ソケット生成に失敗しました", 1 : stop
        }
        repeat
            TcpIsCon _gPID_
            if (stat != 0) {
                break
            }
            wait 10
        loop
        /*パケット送信(GETメソッド)*/
        TcpPut "GET "+p3+" HTTP/1.0\nHost:???\nUser-Agent:???\n\n", _gPID_
        if (stat != 0) {
            dialog "パケット送信に失敗しました", 1 : stop
        }
        /*取得ループ*/
        repeat
            /*パケット取得部分*/
            TcpCount size, _gPID_
            if (size > 0)&(stat != 1) {
                TcpGet buf(0), size+1, _gPID_
                : buf(1) = buf(1)+buf(0)
                /*受信終了したなら*/
                : flg = 1
                break
            }
            wait 10
        loop
        /*ソケット解放*/
        TcpClose _gPID_
        /*フラグ判定*/
        if (flg != 0) {
            /*受信成功したなら*/
            /*パケットのヘッダから*/
            : p = instr(buf(1), 0, "\n\n")
            : buf(1) = strmid(buf(1), p, strlen(buf(1)))
            : p = instr(buf(1), 0, "<"+p4+">")
            : buf(1) = strmid(buf(1), p+strlen(p4)+2, strlen(buf(1)))
            : p = instr(buf(1), 0, "</"+p4+">")
            : buf(1) = strmid(buf(1), 0, p)
            : p = instr(buf(1), 0, ""+p5+"")
            : buf(1) = strmid(buf(1), p+strlen(p5), strlen(buf(1)))
        } else {
            /*受信失敗したなら*/
            : buf(1) = ""
        }
    return buf(1)
     
    #global
     
    NetworkInit
    mes NetworkGetIP("checkip.dyndns.org", 80, "/", "body", "Current IP Address:")

コメント

  • HSP掲示板でおもしろそうだったので作りました。 コレ使えばP2Pも楽だとおもいまっせ ('A`)b ! -- 93 2007-01-24 (水) 23:08:16
  • お疲れサンデス! -- As 2007-01-25 (木) 17:31:18
  • Hello, my name is Alex, i'm a newbie here. I really do like your resource and really interested in things you discuss here, also would like to enter your community, hope it is possible:-) Cya around, best regards, Alex! -- Alexnerji? 2007-02-12 (月) 11:12:15
  • (翻訳こんにゃく)こんにちは、私の名前がアレックスである、私はここの新入りです。 本当にあなたのリソースで本当にあなたがここで議論するものに関心があるようにして、また、あなたの共同体に入りたいと思います、それが可能であるという望み(^o^) 敬具、およそCya、アレックス! -- 93 2007-02-12 (月) 11:48:45
  • Nice to meet you Alex. It is a very welcome. -- 93 2007-02-12 (月) 11:52:25
  • うーん、ここにもベクトル演算と同様の手口が…。うpされているいかがわしげなhtmlファイルを削除しておきますね。参照数1333件て…。 [worried2] -- GENKI? 2007-02-21 (水) 21:00:12
  • 一回ページ削除しても無意味ですかね? -- 93 2007-02-24 (土) 21:14:59
  • 昨日すべて削除したのにもう、数え切れないくらいのファイルが UL されている...。いっそのこと *.html を UL 禁止にしたらどうでしょうか。 -- Irisawa 2007-02-25 (日) 01:48:14
    • すごい、削除してもしても、その度に新しいファイルが UL されてる...。どうも、 bot で無差別 UL しているみたいですね。 -- Irisawa 2007-02-25 (日) 02:24:54
    • bot によってこのページに対してリクエストを行っていると思われることから、ページ名を変えれば少しはマシかも。 -- Irisawa 2007-02-25 (日) 02:30:58
  • 一時的にこちらに移動してみます。 -- Irisawa 2007-02-25 (日) 03:13:28
  • 翻訳こんにゃくワロタwww -- 2010-05-04 (火) 07:22:28

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2010-05-04 (火) 07:22:28 (1314d)