LINUX TCP客服端连接服务器后,怎么获取连接使用的本地IP?

hell_wolf 2013-04-01 03:40:44
connect(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)) 连接服务器之后,怎么通过fd获取本地IP,就是怎么知道用的是哪个网卡的IP去连接服务器的?
...全文
307 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
e_play 2013-04-02
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
system("netstat -na >netstat.txt"); //然后读文件netstat.txt的内容
是的
hell_wolf 2013-04-02
  • 打赏
  • 举报
回复
引用 6 楼 AnYidan 的回复:
C/C++ code ? 123456789101112131415161718192021222324252627 /* tcp_server - set up for a TCP server */SOCKET tcp_server( char *hname, char *sname ) { struct sockaddr_in local; SOCKET……
这个怎么获取客服端IP ?
AnYidan 2013-04-01
  • 打赏
  • 举报
回复

/* tcp_server - set up for a TCP server */
SOCKET tcp_server( char *hname, char *sname )
{
	struct sockaddr_in local;
	SOCKET s;
	const int on = 1;

	set_address( hname, sname, &local, "tcp" );
	s = socket( AF_INET, SOCK_STREAM, 0 );
	if ( !isvalidsock( s ) )
		error( 1, errno, "socket call failed" );

	if ( setsockopt( s, SOL_SOCKET, SO_REUSEADDR,
		( char * )&on, sizeof( on ) ) )
		error( 1, errno, "setsockopt failed" );

	if ( bind( s, ( struct sockaddr * ) &local,
		 sizeof( local ) ) )
		error( 1, errno, "bind failed" );

	if ( listen( s, NLISTEN ) )
		error( 1, errno, "listen failed" );

	return s;
}


mzz_810 2013-04-01
  • 打赏
  • 举报
回复
引用 2 楼 justkk 的回复:
试试 getsockname
顶 如果要获取对端IP请用getpeername
hnzmdzcm 2013-04-01
  • 打赏
  • 举报
回复

#include <netdb.h>

struct hosent* gethostent(void);

struct hostent {
        char    *h_name;        /* official name of host */
        char    **h_aliases;    /* alias list */
        int     h_addrtype;     /* host address type */
        int     h_length;       /* length of address */
        char    **h_addr_list;  /* list of addresses */
};
赵4老师 2013-04-01
  • 打赏
  • 举报
回复
system("netstat -na >netstat.txt"); //然后读文件netstat.txt的内容
justkk 2013-04-01
  • 打赏
  • 举报
回复
试试 getsockname
恨天低 2013-04-01
  • 打赏
  • 举报
回复
客户端程序可以用bind()来绑定

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧