| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > Получить IP-адреса компьютера |
| Автор: DENSHER 6.10.2010, 16:12 | ||
| Все доброго времени суток. Народ нужна ваша помощь как всегда. Хочу сделать вывод в ListView1 список IP-адресов. Чтобы не путать никого , я хочу чтобы выводился список IP только того компьютера на котором запущен проект. А теперь о сути проблемы - Я сделал вывод IP-адресов но V.B. Студия начала ругаться на то что GetHostByName устарел и нужно его заменить на GetHostEntry. Я все сделал и ругаться он перестал но теперь , мне выводит лишних три строчки которые мне ненужно чтобы отображались. Вот код:
На всякий случай прикрепил проект к посту. Ой чуть не забыл о маленькой но важной для меня еще мини-проблеме. Я еще не смог сделать вывод нумерации строчек в ListView1(ListView1.Items.Add("0")'Не знаю как вывести нумерацию строчек"). Подскажите как? Спасибо за внимание рассчитываю на вашу помощь. |
| Автор: Heinzz 9.10.2010, 01:52 | ||
внешний IPадрес
|
| Автор: Pilger 9.10.2010, 02:03 | ||||
Отображай только то, что надо.
Добавь переменную Integer и увеличивай каждый раз на 1. |
| Автор: Heinzz 9.10.2010, 02:13 |
| чтобы сделать нумерацию строчек можно используя вид View.Details сделать первую колонку с номерами. |
| Автор: Heinzz 9.10.2010, 02:45 | ||
|
| Автор: DENSHER 9.10.2010, 03:08 |
| Heinzz, я хочу получить не только статический (внешний) адрес но и локальный тоже. Извиняюсь за дотошность , но с ListView1 я пока не очень дружу. Можно сделать пример именно по моему коду , а точнее по моему прикрепленному проекту. Для более точно картины вот что мне выдавало при использование GetHostByName в ListView1: 1)85.29.158.67 (статический (внешний) адрес) 2)10.119.271.234 (локальный) а вот что выдает при использование GetHostEntry: 1)fe84::f6:1с6a:aaea:58c4%14 2)2003:5617:a74c::5245:a73d 3)85.29.158.67 (статический (внешний) адрес) 4)10.119.271.234 (локальный) 5)2002:0:5ed6:84fd:f7:1d7a:aaea:59c4 Можешь по моему прикрепленному проекту сделать пример , если не сложно. |
| Автор: Pilger 9.10.2010, 04:29 | ||||||||
Не каждый напрямую связан с интернетом. Например мой компьютер моего внешнего ай пи не знает, ибо я через рутер сижу.
Ты можешь вытащить из IP.AddressList любое значение.
А если уж очень хочется, то и GetHostByName никто использовать не запрещает.
Объявляешь новую переменную Integer перед циклом. И в цикле увеличиваешь значение на 1. "0" меняешь на переменную. |
| Автор: DENSHER 9.10.2010, 07:52 | ||
| Pilger , переменную я объявил но никак не могу в цикле увеличить значение на один. Уж прости за назойливость , но чего-то с этим ListView у меня не вяжется. Хотя до этого решал куда серьезнее проблемы , а здесь с нумерацией в тупике ( жесть. Вот цикл:
Переменная объявлена , но как в цикле увеличиваешь значение на 1? |
| Автор: Pilger 9.10.2010, 15:32 | ||
А можно просто ListView1.Items.Сount. |
| Автор: Heinzz 9.10.2010, 21:23 |
| Только count никаких циклов не надо. Очень удобно унаследоваться от оригинального ListView и расширить функционал методами добавления, удаления, редактирования записи и сортировки (см. пример выше). Еще важный момент использовать рефлексию для автоматического считывания названий свойств отображаемых объектов. Ну это чтобы получившийся контрол был универсальным, вдруг через какое-то время решите поля поменять |
| Автор: Pilger 9.10.2010, 23:02 | ||||
Вряд ли он это умеет^^.
|
| Автор: DENSHER 10.10.2010, 02:46 |
Да , этого я точно не умею! Опять хочу вернуться к своим баранам. Чего-то у меня не получается не как сделать нумерацию. Это жесть какая-та (( Pilger , сделай пожалуйста пример кодом. Поскольку я видно еще настолько новичок в этом , что не могу никак это сделать сам. Читал , читал... но так чего-то и не понял... ( |
| Автор: Pilger 10.10.2010, 04:09 | ||||||||
Программа выполняет код в цикле n'ное количество раз. В твоем случае в зависимости от количества элементов в AddressList. То есть для каждого элемента она один раз проходит через цикл. Логично, что если ты объявишь переменную до цикла:
, а в конце каждого прохода через цикл будешь увеличивать значение на один больше:
, то на момент каждого захода в цикл твоя переменная будет на один больше, чем в предыдущем заходе. И соответственно на момент добавления в ListView1 она будет на один больше, чем при предыдущем добавлении. И теперь можно чисто логически понять, куда это значение стоит всунуть. Еще есть другой путь. У ListView1.Items есть свойство Count, которое возвращает текущее количество строк в ListView. То есть если ты напишешь:
,то ты узнаешь, сколько там строк. Зная количество строк думаю ты сразу сообразишь, какой номер будет у следующей строки. И точно так же чисто логически сообразишь, куда его всунуть.
Почему я тебе не даю сразу готовое решение. Потому что если ты не будешь в состоянии решить подобную простую задачу любым доступным методом сам, то у тебя будут возникать проблемы на протяжении всего времени, а это тяжко. Если ты все таки не понял, то говори. |
| Автор: DENSHER 10.10.2010, 15:30 |
| Pilger , видно все же я не понимаю что-то или что-то не правильно делаю. Возможно я уперся в неправильно направлении. Поскольку я все что не пытался сделать у меня в колонке номера получается: либо 0 , либо пишет False. Спасибо тебе огромно за посты разъяснения , но видно что-то недопонимаю я. |
| Автор: Pilger 10.10.2010, 20:56 | ||||||||
Или как ты делал
|
| Автор: DENSHER 10.10.2010, 23:35 | ||||
Pilger , благодарю тебя за разъяснительные посты , примеры и твое терпение. Только по твоим примерам я понял свою ошибку. Вот что я делал когда писало False:
При этом примере писало 0:
Глупо выглядит , но я уперся в этот вариант как баран. Еще раз спасибо. |