Как получить IP-адрес через www.ipaddresslocation.org в Blackberry - PullRequest
1 голос
/ 15 декабря 2011

Я новичок в программировании Blackberry.Я пытаюсь получить IP-адрес, округ, город, штат / провинцию через www.ipaddressslocation.org

Мой источник:

String url = "http://www.ipaddresslocation.org/my-ip-address.php";
    // HTTP connection
    HttpConnection httpConnection = null;
    // Stream connection
    StreamConnection streamConnection = (StreamConnection) Connector
            .open(url);
    httpConnection = (HttpConnection) streamConnection;
    int code = httpConnection.getResponseCode();
    String strContent = "";
    // Check response code
    if (code == HttpConnection.HTTP_OK) {
        InputStream is = httpConnection.openInputStream();
        int length = (int) httpConnection.getLength();
        // Content is empty
        if (length != -1) {
            byte incomingData[] = new byte[length];
            is.read(incomingData);
            strContent = new String(incomingData);
            // Write content
        } else {
            ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
            int ch;
            while ((ch = is.read()) != -1) {
                bytestream.write(ch);
            }
            strContent = new String(bytestream.toByteArray());
            bytestream.close();
        }
    }

Когда этот метод был завершен, я получил strContentвернуть .Подробный контент:

\ndocument.write('<table><tr><td>Hello, visitor from: <strong> Takatsuki, Japan</strong>');document.write('<img src=\'http://www.ipaddresslocation.org/flags/jp.png\'></td></tr>');document.write('<tr><td>Your Country Code: <b>JP</b></td></tr>');document.write('<tr><td>Your IP State: <b>Osaka</b></td></tr>');document.write('<tr><td>Your IP Address: <b>202.213.220.66</b></td></tr>');document.write('<tr><td>Your Hostname: <b>ns.isb.co.jp</b></td></tr>');document.write('<tr><td>Your ISP: <b>So-net Entertainment Corporation</b></td></tr>');document.write('<tr><td>Your Organization: <b>ISB CORP.</b></td></tr></table>');

Как узнать содержание IP, страну, штат, город сверху?

Спасибо и наилучшими пожеланиями!

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Поскольку не существует стандартного формата, то есть JSON или XML, вы должны проанализировать ответ самостоятельно.Чтобы написать свой скрепер, просто внимательно проверьте формат ответа и спроектируйте свой алгоритм.

Например, ответ будет выглядеть следующим образом, если мы разделим ответ на ";" ..

document.write('<table><tr><td>Hello, visitor from: <strong> Dhaka, Bangladesh</strong>')
document.write('<img src=\'http://www.ipaddresslocation.org/flags/bd.png\'></td></tr>')
document.write('<tr><td>Your Country Code: <b>BD</b></td></tr>')
document.write('<tr><td>Your IP State: <b>Dhaka</b></td></tr>')
document.write('<tr><td>Your IP Address: <b>116.212.105.42</b></td></tr>')
document.write('<tr><td>Your Hostname: <b>ws9-tetrasoft-dm-ac1-p16.telnet.com.bd</b></td></tr>')
document.write('<tr><td>Your ISP: <b>Telnet Communication Limited</b></td></tr>')
document.write('<tr><td>Your Organization: <b>Telnet Communication Limited</b></td></tr></table>')

Затем вы можете удалить "document.write ('" и "')" из каждой строки ..

, тогда ответ станет

<table><tr><td>Hello, visitor from: <strong> Dhaka, Bangladesh</strong>
<img src=\'http://www.ipaddresslocation.org/flags/bd.png\'></td></tr>
<tr><td>Your Country Code: <b>BD</b></td></tr>
<tr><td>Your IP State: <b>Dhaka</b></td></tr>
<tr><td>Your IP Address: <b>116.212.105.42</b></td></tr>
<tr><td>Your Hostname: <b>ws9-tetrasoft-dm-ac1-p16.telnet.com.bd</b></td></tr>
<tr><td>Your ISP: <b>Telnet Communication Limited</b></td></tr>
<tr><td>Your Organization: <b>Telnet Communication Limited</b></td></tr></table>

Теперь вы можете использовать любой анализатор HTML или анализоставшиеся сами ...

просто решить проблему ...

например, чтобы получить IP-адрес, вам нужно проанализировать 5-ю строку ..

удалитьвсе символы от индекса 0 до индекса <b> + 3 .... это удалит часть "<tr><td>Your IP Address: <b>" из этой строки ..... затем удалите символы из индекса </b> впоследний ... это удалит "" из этой строки ... и вы получите "116.212.105.42" как оставшиеся ...

1 голос
/ 15 декабря 2011

Я думаю, что это невозможно проанализировать, но мы можем использовать логику для получения данных из этой строки, но формат должен быть одинаковым всегда*

...