2016-08-17 24 views
0

SMS Gatewayアプリを使用して私の電話をSMSゲートウェイとして使用しようとしています。Android携帯電話へのGETリクエスト

アプリはHTTP GETリクエストをリッスンし、電話番号とメッセージを抽出して送信し、SMSを送信します。私の電話は、IPv4アドレスを持っているものの

  1. はなぜ、これはIPv6のように見えるん: http://fe80::57ee::c539:6741%rmnet0:9090/sendsms(ない本当のIP)

    私の質問は以下のとおりです。

    アプリは、次のターゲットURLを提供します?

  2. "%rmnet0"をHTTPリクエストに含めるにはどうすればよいですか?

  3. node.js以下のコードで何が問題になっていますか? (IP電話番号編集さ)

    var request = require('request'); 
    
    function send(phone,message){ 
    
    
    // Set the headers 
    var headers = { 
        'User-Agent':  'Domogeek/4', 
        'Content-Type':  'application/x-www-form-urlencoded' 
    }; 
    
    // Configure the request 
    var options = { 
        url: "http://fe80::57ee::c539:6741%rmnet0:9090/sendsms", 
        // url: "http://92.90.21.38:9090/sendsms", 
        method: 'GET', 
        headers: headers, 
        qs: {'phone': phone, 'text': message} 
    }; 
    
        console.log('GET request'); 
    
    // Start the request 
    request(options, function (error, response, body) { 
        if (!error && response.statusCode == 200) { 
         console.info('SMS sended to: %s => %s', phone, message); 
        } else { 
         console.error('SMS error : %s => %s', error, message); 
        } 
    }); 
    
    } 送信( '00684060640'、 '歓迎');

多くの感謝!

答えて

0

アプリケーションが間違ったアドレスを選択しています。これはリンクローカルアドレスであり、fe80で始まり、外部接続からは使用できません。 here about the reachability scope % sign

Androidのバージョンに応じてifconfigまたはnetcfgを見て、お使いの携帯電話のアドレスを確認してください。

+0

ありがとうございます。アプリはローカルインターフェースを聞いています。 Androidは着信リクエストをそのリンクローカルアドレスに転送しますか?それはどのように機能しますか? – jomcfly

0

すべて最新の携帯電話にIPv6が搭載されているため、携帯電話にIPv6が搭載されています。これは4G LTEの必須プロトコルです。 IPv4はオプションで、電話機にIPv4アドレスがまったく設定されていない可能性があります(この場合、携帯電話ネットワークはNAT64/DNS64などの翻訳テクノロジを使用して、IPv4リソースをIPv6経由で電話機に提示します)。

URLでIPv6リテラルをフォーマットする適切な方法は、角カッコ内です。たとえば、次のようになります。

http://[fe80::57ee::c539:6741%rmnet0]:9090/sendsms 

ただし、一部のHTTPクライアント実装ではIPv6リンクローカルアドレスに接続できないことに注意してください。この場合、アプリのデベロッパーに相談する必要があります(またはバグを報告する可能性が高い)。