`
须等待
  • 浏览: 210811 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

服务器启动与本机IP获取问题

    博客分类:
  • Java
阅读更多
启动一个服务器的时候,服务器端需要做Socket的绑定,以前没有仔细的研究过这一块的API,今天做了一些研究,特此记录

按照一般的思路,绑定一个Socket,首先要查找到本机的IP地址,查找本机的IP地址有两种思路:
1、是直接取物理设备的信息,然后去筛选;
    优点:绝对不会漏IP
    缺点:不能直接定位想取的IP,可能会取到虚拟机的IP,外网IP、内网IP一堆IP
2、是用Java的API;
    第一个API是根据本机名来取IP,第二个API是根据localhost来取API,这两个API最后都会在本机的hosts里找映射的IP,windows是%系统盘%/system32/drivers/etc/hosts,linux是/etc/hosts。本机名和localhost在hosts文件里的配置会直接影响到API取出的IP
3、构建一个Socket去连接别的网站,然后通过创建的socket获得本机的IP,这种做法不太优雅,但是可行性比较高,可以保证取到外网IP

但是事实上,启动一个服务器应用并不需要获知本机的IP地址,这里来自协议的限定是,TCP是端到端的连接,这里的端到端是TCP端到TCP端的连接,对于一个服务器来说,TCP端也就是网卡,由于服务器通常都有多个网卡,所以对于绑定IP的Socket,只有发往特定服务器特定网卡的消息,才能被Socket所接收。但是操作系统在协议的基础上做出了更多的支持,在linux上,用netstat -ap 可以看到服务器网卡上监听的情况,Local Address *:54321,这里的*代表监听当前服务器上所有网卡接收的到的54321端口的消息。

结论:启动一个服务器,不需要知道本机的IP,只需要绑定端口,剩下的工作,交给操作系统,操作系统会把没有指定IP的socket绑定到机器上的所有IP上。

0
0
分享到:
评论

相关推荐

    android手机做socket服务器,多手机进行通信

    此文件安装过后本机即是服务器,本机与本机可以交互; 一、针对本机作为服务器; 步骤: 1、先启动服务:点击“先去管理服务” 2、再“前去会话”,进入会话界面之后,先点击连接;即可在下方输入内容,返送; 二...

    腾讯通RTX获取IP工具

    RTX服务器端,需要运行一个服务端程序RTXIPS.EXE,或者在RTX管理器中:应用管理器,启动RTX应用管理器,添加应用,这样启动RTX服务器是就不需要单独启动了。 可以单独使用。服务器程序只能在RTX服务器上使用。 客户端...

    Arukas-API, Arukas API 自动获取IP和端口,SSR服务器订阅,Arukas 监测启动.zip

    Arukas-API, Arukas API 自动获取IP和端口,SSR服务器订阅,Arukas 监测启动.zip

    ip:小型服务器,用于获取客户端IP地址

    [ip] 小型服务器,用于获取客户端IP地址正在安装将IP_SERVER_PORT添加到您的环境变量(这是服务器将侦听的端口) 克隆仓库使用npm install安装依赖项使用node ip.js启动服务器

    动态ip获得服务器端和客户端

    1,本软件由WalNut_Server(服务器端)和WalNut_Clinet(客户端)构成,WalNut_Server主要工作是获得广域网IP地址 并发送给WalNut_Clinet。 2,双击WalNut_Server,运行后会自动隐藏,并开机自启动,按"Ctrl+Alt+F9"唤醒...

    阿里云域名对应ip提交工具

    程序每次启动时去阿里云dns获取域名绑定的ip地址,再跟当前本机的外网ip地址做对比,如果ip相同则说明没改变,不做改动。如果ip不同则修改域名绑定的ip地址。 服务器ip的获取时间可调,在运行后,首先填写几个必要...

    NetbootM(DHCP分配).rar

    4、配置下图红框中的选项,启始地址为需要配置的IP的第一个地址,子网掩码以及网关与客户要求一致; 5、点击确定后,服务器即可获取地址; 6、用浏览器登录此台机器BMC的管理台,选择网卡配置,将eth0(eth0为独立...

    动态获得远端电脑IP地址

    1,本软件由WalNut_Server(服务器端)和WalNut_Clinet(客户端)构成,WalNut_Server主要工作是获得广域网IP地址 并发送给WalNut_Clinet。 2,双击WalNut_Server,运行后会自动隐藏,并开机自启动,按"Ctrl+Alt+F9"唤醒...

    路由器的dhcp服务器怎么设.doc

    有时DHCP服务器也可能假死,导致固定IP地址的电脑能上网,而自动获取IP的其他 电脑无法获取到IP,这时需要重新启动一下路由器。 结合静态ARP绑定设置,可以将IP地址与MAC网卡物理地址进行绑定,更好地对局域网电 脑...

    DHCP获取软件

    1、启动程序,如果机器安装了DR.COM客户端,请选中“使用WinPacp驱动”,如果不选中,只能抓取本机在获取地址过程中的dhcp包文,如果选中的,网络中如果存在dhcp报文,也会抓取到。 2、将该网络所在的网关地址填入...

    自动获得Ip地址

    1,本软件由WalNut_Server(服务器端)和WalNut_Clinet(客户端)构成,WalNut_Server主要工作是获得广域网IP地址 并发送给WalNut_Clinet。 2,双击WalNut_Server,运行后会自动隐藏,并开机自启动,按"Ctrl+Alt+F9"唤醒...

    Linux操作系统:DHCP服务器的安装与配置.pptx

    (5)配置客户端,获取IP地址。 配置思路 配置服务器主机网络 执行命令打开网络配置文件: vi /etc/sysconfig/network-scripts/ifcfg-ens33 按照规划完成服务器网络配置: BOOTPROTO=static IPADDR=192.168.1.254 ...

    网狐荣耀版开发使用常见问题解答

    这个问题有原因有几个,一可能是服务器端的IP连接设置有问题;二是游戏更新有问题。 Q-Q457189 三十三、网狐荣耀版或其它安卓项目出现Application cannot be exported due to the erro 网狐荣耀版或其它安卓项目...

    IIS6.0 IIS,互联网信息服务

    多个IP对应多个Web站点 如果本机已绑定了多个IP地址,想利用不同的IP地址得出不同的Web页面,则只需在“默认Web站点”处单击右键,选“新建→站点”,然后根据提示在“说明”处输入任意用于说明它的内容(比如为“我...

    C++使用SOCKET实现TCP-IP协议的通讯最好的DEMO源码

    第一个程序结构负责服务器的启动与客户端连接的登记,首先建立TcpListener网络侦听类,建立的时候构造函数分别包括localaddr和port2个参数,localaddr指的是本地地址,也就是服务器的IP地址,有人会问为什么它自己不...

    Kiwi-Syslog日志服务器搭建.doc

    配置Rsyslog守护进程为客户端: # vi /etc/rsyslog.conf 添加以下声明,将IP地址替换为你的远程rsyslog服务器的IP地址: *.* @192.168.4.14:514 // UDP端口 ( 若需要可靠地协议,*.* @@192.168.4.14:514//TCP端口 ...

    您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问解决方法

    症状:电脑与电脑间可以Ping通,但无法访问共享资源,在“计算机管理”中查看“本地共享”后会弹出“没有启动服务器服务”的错误对话框。 解决:在控制面板-管理工具-服务中启动Server服务。并设置“启动类型”为...

    server.sh jar包启动、关闭脚本

    脚本已内置jvm参数调优和远程监控配置 下载后jvm参数根据实际情况修改即可,根据系统不同 获取服务器ip有所不同, 如果配置远程监控获取服务器ip失败,通过命令查看本机ip信息存放文件 (centos7 :ip addr ;...

    易语言HTTPS代理服务器

    易语言HTTPS代理服务器源码,HTTPS代理服务器,HTTP_HTTPS_启动代理服务器,HTTP_HTTPS_停止代理服务器,延时_超级延时,UnicodeToAnsi2,进程是否有效,进程创建,获取宽带帐号密码,文本_取文本中间,重拨_cmd,拨号_cmd,断开...

Global site tag (gtag.js) - Google Analytics