Как изменить source-ip (tcp) в Java

1

Можно ли изменить заголовок TCP в Java? Если это возможно, существует ли метод [Изменить заголовок]?

Теги:
tcp

2 ответа

1

Отвечая на более узкий вопрос из названия вашего вопроса ("Как изменить исходный ip в Java"), вы можете привязать свой сокет к локальному IP-адресу и/или порту, прежде чем подключать его к получателю.

IP-адрес, к которому вы привязываетесь, должен быть IP-адресом, который имеет ваш компьютер (в противном случае, как пакеты могут вернуться на ваш компьютер?). Вы также можете использовать любой неиспользуемый номер незарезервированного порта для подключения.

Socket socket = new Socket();
socket.bind(new InetSocketAddress(9999));
// or: socket.bind(new InetSocketAddress(InetAddress.getByAddress(...), 9999));
socket.connect(new InetSocketAddress(InetAddress.getLocalHost(), 80));

В общем случае ответ отрицательный, вы не можете просто случайно изменить заголовок TCP. Но есть много настроек, которые вы можете сделать с Java, которые повлияют на то, что входит в заголовок TCP.

0

Мне интересно, не собираетесь ли вы обмануть сервер, предоставив случайный источник ip. Насколько я знаю, в java нет возможности сделать это. И даже если вы изменили свой IP-адрес, я думаю, вы не можете успешно "сотрясать руку" с сервером, а это значит, что вы не можете установить TCP-соединение с серверной стороной.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню