G - IP地址转换

IP地址总是由4个0-255的数字以"."隔开的形式来显示给用户,例如192.168.0.1。在计算机中,一个IP地址用4字节来依次存储其从右到左的4个数字部分,每个字节(8比特)以2进制的形式存储相应的IP地址数字,请你实现一个从IP地址的显示格式到计算机存储格式的转换。

Input
每行输入一个IP地址,如果输入为-1,结束输入

Output
每行输出一个IP地址在计算机存储中以二进制表示的4字节内容

Sample Input
192.168.0.1
255.255.0.0
1.0.0.1
-1

Sample Output
11000000101010000000000000000001
11111111111111110000000000000000
00000001000000000000000000000001

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Created by Fant.J.
 * 2017/12/6 19:20
 */
public class Main {
    private static List list = new ArrayList();
    private static String ipAddr = null;
    private static String result = "";
    private static int count = 1;

    public static void main(String []args){
        Scanner scanner = new Scanner(System.in);
        ipAddr = scanner.nextLine();
        while (! ipAddr.contains("-1")){

            String[] datas = ipAddr.split("\\.");
            int data1 = Integer.valueOf(datas[0]);
            int data2 = Integer.valueOf(datas[1]);
            int data3 = Integer.valueOf(datas[2]);
            int data4 = Integer.valueOf(datas[3]);
            pincou(data4);
            pincou(data3);
            pincou(data2);
            pincou(data1);
           // System.out.println(result.length());
            list.add(result);
            //初始化 三个参数
            result="";
            count = 1;
            ipAddr = scanner.nextLine();
        }
        for (Object item:list){
            System.out.println(item);
        }
    }
    public static void pincou(int data){
        while (true){
            int yushu = data%2;
            result = yushu+result;
            data /= 2;
            if (data==0){
                //判断下是否够8个字节
                int judge = result.length();
                if (judge<8*count){
                    for (int i = 0;i<8*count-judge;i++){
                        result = 0+result;
                    }
                }
                count++;
                break;
            }
        }
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
H3C ER3108G路由器支持源地址转换(Source NAT)功能。源地址转换(SNAT)是一种网络地址转换技术,它允许在数据包通过路由器时,将源IP地址和端口号转换为另一个IP地址和端口号,从而隐藏内部网络的真实IP地址。 要配置源地址转换功能,您可以按照以下步骤操作: 1. 进入路由器的配置模式。可以通过SSH、Telnet或串口连接到路由器,并使用管理员权限登录。 2. 创建地址池。地址池是用于分配给内部网络的虚拟IP地址的集合。您可以使用以下命令创建一个地址池: ``` [Router] ip pool pool-name [Router-ip-pool-pool-name] gateway ip-address [Router-ip-pool-pool-name] network network-address mask [Router-ip-pool-pool-name] start-ip ip-address [Router-ip-pool-pool-name] end-ip ip-address ``` 3. 配置源地址转换规则。您可以使用以下命令配置源地址转换规则: ``` [Router] nat address-group address-group-name [Router-nat-address-group-address-group-name] ip pool pool-name [Router-nat-address-group-address-group-name] acl acl-number ``` 4. 创建ACL(访问控制列表)。ACL用于指定需要进行源地址转换的数据包。您可以使用以下命令创建ACL: ``` [Router] acl number acl-number [Router-acl-basic-acl-number] rule rule-id [deny|permit] [source source-address { source-wildcard | source-mask } [operator { eq | neq }] [destination destination-address { destination-wildcard | destination-mask } [operator { eq | neq }] [protocol protocol] [source-port source-port-number | icmp-type icmp-type-number | icmp-code icmp-code-number | tcp-flag tcp-flag-value | fragment-type fragment-type-value] ``` 以上是一个简单的配置示例,您可以根据您的网络环境和需求进行相应的配置。请注意,具体的命令和参数可能会根据您使用的路由器型号和软件版本而有所不同。建议您参考H3C ER3108G路由器的官方文档或咨询H3C技术支持以获取更详细的配置指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值