Sponsored Content
Operating Systems HP-UX How to determine network interface that will be used to send a packet for an IP Post 302411612 by foxrafi on Friday 9th of April 2010 01:53:05 PM
Old 04-09-2010
Bug How to determine network interface that will be used to send a packet for an IP

Hello,
I'm writing to you because I encountered the following problem. My program displayes all network interfaces that are available in the system, but I would like to add a functionality in which a user can enter a destination address IP (ex. the IP address of the Google search engine) and will get information which network interface will be used to send it. As I know it is associated with reading information from routing table in the system. Maybe you know the API (functions/methods) which I could use to do it in HP-UX ? I program in C/C++, but if you know how to do it in other programming languages (Java, Perl, Python) I will be grateful for any information.

Thank you for any help, tips and suggestions.

Best regards,
Foxrafi

---------- Post updated at 12:53 PM ---------- Previous update was at 01:55 AM ----------

Just to share with you what I've already learnt. On Solaris there is a command: "route get <ip address>" which shows the network interface that will be used for network communication with this IP address. Example:
route get 9.168.23.12.
As source code for OpenSolaris is available publicly it shouldn't be difficult to find what system calls are used to it, I think so.

I've also found a short discussion about this topic on the HP-UX forum: here .
It turns out that on HP-UX you're not able to achieve it in a simple way.

If you have any other ideas how solve my problem Smilie, I will appreciate that.
 

10 More Discussions You Might Find Interesting

1. Programming

determine if a ethernet interface is up

Howto check if a ethernet interface is up? It's impossible to determine via the ipaddress i have learned, or? Can someone please give me a hint on howto do? Environment == Linux x86 GNU GCC. :D regards Esaia (2 Replies)
Discussion started by: Esaia
2 Replies

2. IP Networking

How to determine the interface?

Given the interfaces on a firewall: eth0 Link encap:Ethernet HWaddr 02:40:67:34:F5:47 inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 eth1 Link encap:Ethernet HWaddr 86:23:98:45:35:56 inet addr:123.45.240.69 Bcast:255.255.255.255 ... (2 Replies)
Discussion started by: kikikaka
2 Replies

3. Solaris

Determine Solaris box network interface?

Given a new Solaris box, with a fresh, unconfigured install on it, how does one figure out what kind of network interface it has (bge,le, hme, etc)? (8 Replies)
Discussion started by: akbar
8 Replies

4. HP-UX

how to get network packet size

how to get network packet size I would like get network output rate(kb/sec) I type command "netstat -i" Ipkts Ierrs Opkts Oerrs 653387 0 678202 0 but i didn't know what is it packet size , how could i get it? (1 Reply)
Discussion started by: alert0919
1 Replies

5. Solaris

Packet loss on ce interface.

Hi, I am using the ce interface on my Solaris 9 server and there is significant packet loss when transmitting large packets. Does anyone have a fix for this? ----10.1.0.0 PING Statistics---- 51 packets transmitted, 42 packets received, 17% packet loss round-trip (ms) min/avg/max =... (12 Replies)
Discussion started by: sparcman
12 Replies

6. Solaris

No network cable But Network interface is UP and Running

I've one Netra 240 After changing main board and system configuration card reader, Network is not accessible any more, Network interfaces are always UP and Running even when there is no cable connected to Network interfaces. I tried to restart and plumb/unplumb with no luck. ifconfig -a... (7 Replies)
Discussion started by: samer.odeh
7 Replies

7. UNIX for Dummies Questions & Answers

Adding a network interface to a bonded interface

I have a RHEL 5 system with a bonded interface configure using only one network port (eth0). So I have config file for ifcfg-bond0 and ifcfg-eth. I'd like to configure eth5 to be the second SLAVE in the bond. My question is, after I modify ifcfg-eth5, can I add eth5 to the bond0 interface without... (1 Reply)
Discussion started by: westmoreland
1 Replies

8. Shell Programming and Scripting

Bash- Determine what interface is online

Hey guys, I want to use a a quick bash script/command to determine what network interface is connected to the internet so I can pipe it out to become a variable, in order so the user does not have to manually type it in each time or have to 'hardcode' the variable into the script. I know about... (6 Replies)
Discussion started by: 3therk1ll
6 Replies

9. Solaris

Determine PCI Endpoint for a Serial Interface.

Hi Folks, Here is one for the real Solaris aficionados on the site; I have a T5240 and have to create an I/O domain with access to the serial port, in this case /dev/term/a and although I have been through the documentation I'm having some issues in identifying the device to assign. What I... (2 Replies)
Discussion started by: gull04
2 Replies

10. IP Networking

Packet going out of wrong interface due to OS automatically added cache route with lower metric

RHEL 7.0, IPV6 Scenario: I have routed specific network using network scripts. 1. "ip -6 route show" shows that route has been added. ( with metric 1024) 2. Ping of the specific IP through that route is successful. 3. Now after few days, for some reason, we see that cache route appears for... (3 Replies)
Discussion started by: msr1981
3 Replies
routing(7P)							     Protocols							       routing(7P)

NAME
routing - system support for packet network routing DESCRIPTION
The network facilities provide general packet routing. The routing interface described here can be used to maintain the system's IPv4 rout- ing table. It has been maintained for compatibility with older applications. The recommended interface for maintaining the system's routing tables is the routing socket, described at route(7P). The routing socket can be used to manipulate both the IPv4 and IPv6 routing tables of the system. Routing table maintenance may be implemented in applications processes. A simple set of data structures compose a "routing table" used in selecting the appropriate network interface when transmitting packets. This table contains a single entry for each route to a specific network or host. The routing table was designed to support routing for the Internet Protocol (IP), but its implementation is protocol independent and thus it may serve other protocols as well. User programs may manipulate this data base with the aid of two ioctl(2) commands, SIOCADDRT and SIOCDELRT. These commands allow the addition and deletion of a single routing table entry, respectively. Routing table manipulations may only be carried out by privileged user. A routing table entry has the following form, as defined in /usr/include/net/route.h: struct rtentry { unit_t rt_hash; /* to speed lookups */ struct sockaddr rt_dst; /* key */ struct sockaddr rt_gateway; /* value */ short rt_flags; /* up/down?, host/net */ short rt_refcnt; /* # held references */ unit_t rt_use; /* raw # packets forwarded */ /* * The kernel does not use this field, and without it the structure is * datamodel independent. */ #if !defined(_KERNEL) struct ifnet *rt_ifp; /* the answer: interface to use */ #endif /* !defined(_KERNEL) */ }; with rt_flags defined from: #define RTF_UP 0x1 /* route usable */ #define RTF_GATEWAY 0x2 /* destination is a gateway */ #define RTF_HOST 0x4 /* host entry (net otherwise) */ There are three types of routing table entries: those for a specific host, those for all hosts on a specific network, and those for any destination not matched by entries of the first two types, called a wildcard route. Each network interface installs a routing table entry when it is initialized. Normally the interface specifies if the route through it is a "direct" connection to the destination host or network. If the route is direct, the transport layer of a protocol family usually requests the packet be sent to the same host specified in the packet. Otherwise, the interface may be requested to address the packet to an entity different from the eventual recipient; essentially, the packet is forwarded. Routing table entries installed by a user process may not specify the hash, reference count, use, or interface fields; these are filled in by the routing routines. If a route is in use when it is deleted, meaning its rt_refcnt is non-zero, the resources associated with it will not be reclaimed until all references to it are removed. User processes read the routing tables through the /dev/ip device. The rt_use field contains the number of packets sent along the route. This value is used to select among multiple routes to the same desti- nation. When multiple routes to the same destination exist, the least used route is selected. A wildcard routing entry is specified with a zero destination address value. Wildcard routes are used only when the system fails to find a route to the destination host and network. The combination of wildcard routes and routing redirects can provide an economical mechanism for routing traffic. ERRORS
EEXIST A request was made to duplicate an existing entry. ESRCH A request was made to delete a non-existent entry. ENOBUFS Insufficient resources were available to install a new route. ENOMEM Insufficient resources were available to install a new route. ENETUNREACH The gateway is not directly reachable. For example, it does not match the destination/subnet on any of the network interfaces. FILES
/dev/ip IP device driver SEE ALSO
route(1M), ioctl(2), route(7P) SunOS 5.10 9 Nov 1999 routing(7P)
All times are GMT -4. The time now is 03:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy