The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Топ форумы > Программирования высокого уровня
.
Google unix.com



Программирования высокого уровня Почтовые вопросы о C, C + +, Java, SQL и других языках программирования здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
IP-адрес машины harneet2004us UNIX перспективных И опытных пользователей 3 04-16-2008 05:54 PM
Получение Unix машине IP-адрес asutoshch Shell программирование и сценарии 6 04-30-2006 09:14 AM
Как получить IP-адрес машины mridula Сеть IP 5 11-02-2005 09:21 AM
Ограничение доступа к машине IP-адрес Патч UNIX для чайников Вопросы И Ответы 2 10-20-2003 03:46 PM
Изменение IP-адрес машины kkinnon UNIX перспективных И опытных пользователей 7 08-27-2002 03:17 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 08-25-2003
Ахсан Ahsan is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2003
Местонахождение: Австралия
Сообщений: 9
Question Как получить IP-адрес машины?

Есть ли какие-либо API вызова для получения IP-адреса на одной машине? Я знаю, есть функция, которая возвращает имя машины, gethostname (). Но мне нужна ИС.

Благодаря И Regards,
Ахсан
Old 08-25-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Регистрация: август 2001
Место проведения: Ashburn, Вирджиния
Сообщения: 9131
См. gethostbyname ()
Old 10-10-2003
DreamWarrior DreamWarrior is offline
Зарегистрированный пользователь
  
 

Регистрация: Oct 2003
Сообщений: 70
Bump

Эй, вы все могли бы быть чуть более конкретным в этом один. Я читал человек странице gethostbyname и она, как представляется, возвращаются общий внутренний адрес формате. Это должен быть превращен в точку нотации IP-адрес, и я не знаю, как это сделать.

Кроме того, чтобы продлить этот немного, можно получить информацию, начиная с дескриптором файла, который сокет. Т.е. если только часть информации я о связи является дескриптором файла, могу ли я получить sockaddr_in структуры, что для перехода к gethostbyname затем конвертировать в IP?

Спасибо!
Old 10-12-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Регистрация: август 2001
Место проведения: Ashburn, Вирджиния
Сообщения: 9131
Re: Bump

Цитата:
Первоначально Написал DreamWarrior
Эй, вы все могли бы быть чуть более конкретным в этом один. Я читал человек странице gethostbyname и она, как представляется, возвращаются общий внутренний адрес формате. Это должен быть превращен в точку нотации IP-адрес, и я не знаю, как это сделать.
Наилучшим решением в такие вещи, как это для просмотра некоторых исходных кодов. Существует тонну исходного кода в интернете. И Есть несколько программ, формат IP-адреса. Но я в ловушке в офисе ожидания для тек, и у меня нет ничего лучше сделать, так что ...
Код:
#ifdef __STDC__
#define PROTOTYPICAL
#endif
#ifdef __cplusplus
#define PROTOTYPICAL
#endif

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>


#ifdef PROTOTYPICAL
int main(int argc, char *argv[])
#else
main(argc,argv)
char *argv[];
#endif
{
	char *mess;
	struct hostent *hp;
	int dumpall;

	dumpall=0;
	while(*++argv) {
		if(!strcmp(*argv,(char *)"-d")) {
			dumpall=!dumpall;
			continue;
		}
		/*
		 *  Call gethostbyname for current argument
		 */
		if(! (hp = gethostbyname(*argv))) {
			switch(h_errno){
					case HOST_NOT_FOUND:  
						mess=(char *)"Not Found";
						break;
					case TRY_AGAIN:  
						mess=(char *)"Time Out";
						break;
					case NO_RECOVERY:  
						mess=(char *)"No Recovery";
						break;
					case NO_ADDRESS:  
						mess=(char *)"No Address";
						break;
					default: 
						mess=(char *)"unknown error";
						break;
			}
			printf("%s  %s\n", *argv, mess);

		} else {
			printf("%s  %s  %s \n", *argv, hp->h_name,
				inet_ntoa(*(struct in_addr *)(hp->h_addr)));
			if(dumpall) {
				printf("  addresses:\n");
				while(*(hp->h_addr_list)){
					printf("      %s \n", 
						inet_ntoa(*(struct in_addr *)*(hp->h_addr_list)++));
				}
				printf("  aliases:\n");
				while(*(hp->h_aliases)){
					printf("      %s \n",*(hp->h_aliases)++);
				} 
			}
		}
	}
	exit(0);
}

Это должно работать с любым C или C + + компилятор. Но я только испытание на HP-UX.

Цитата:
Первоначально Написал DreamWarrior

Кроме того, чтобы продлить этот немного, можно получить информацию, начиная с дескриптором файла, который сокет. Т.е. если только часть информации я о связи является дескриптором файла, могу ли я получить sockaddr_in структуры, что для перехода к gethostbyname затем конвертировать в IP?

Спасибо!
Yow!! У нас есть 4 часа времени отклика.

Вы не можете делать, что portably и она, как правило, требует корневого питания. Взгляните на исходный код для lsof. Он делает такие вещи, как это.

Но все розетки структур хранения IP-адреса не доменных имен
Old 10-16-2003
DreamWarrior DreamWarrior is offline
Зарегистрированный пользователь
  
 

Регистрация: Oct 2003
Сообщений: 70
Черт, то inet_ntoa работать не будет. Я хочу, по крайней мере, иметь возможность получить IP после вызова согласиться на сокет .... Я пойду искать, если все это скучно, и может помочь мне. Если я нахожу что-либо, я его вверх ... тоже плохо не один здесь, как хорошо TCP для Unix книги.

BTW, просто из любопытства, вы в Rockville и использовании HP-UX машины, какой-то шанс ты на АВС контракт?

Последний раз редактировалось DreamWarrior; на 10-16-2003 11:09 AM..
Old 10-16-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Регистрация: август 2001
Место проведения: Ashburn, Вирджиния
Сообщения: 9131
Почему не будет inet_ntoa работы? Похоже на работу, когда я пытаюсь его. Почтовый код, может быть, я или кто-то увидит нечто. Существуют также несколько десятков серверов с исходным кодом для Вас, чтобы найти в Интернете. Большинство из них удалось войти клиент IP-адресов.

Лучшая сеть программирования книга UNIX Сети Программирование богатыми Стивенс.

Я буду игнорировать ваши поиски дополнительных улик для моей личности.
Old 10-23-2003
ComPlayer ComPlayer is offline
Зарегистрированный пользователь
  
 

Регистрация: Oct 2003
Сообщений: 2
Это очень трудно читать Ваш источник code.hehe.
Что я должен делать для моей первой ступени обучения программирования C сети?
может быть, это не просто ответить.
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 04:27 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0