In a spatial database such as Spatialite you can do this easily. Polyline intersections are points, so import your roads network into spatialite, and create a new points spatial table:
.loadshp roads_network roads LATIN1 <SRID>
CREATE TABLE intersections (pk_uid INTEGER PRIMARY KEY AUTOINCREMENT)
SELECT AddGeometryColumn('intersections','Geometry',<SRID>,'POINT','XY');
The <SRID> parameter is the EPSG code of your coordinate reference system. Now run a query such as (assuming the roads table has a PRIMARY KEY column pk_uid):
INSERT INTO intersections (Geometry)
SELECT ST_Intersection(r1.Geometry, r2.Geometry)
FROM roads AS r1, roads AS r2
WHERE r1.pk_uid <> r2.pk_uid;
The WHERE clause insures that you are ignoring the cases of a road intersecting itself.